Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.c > #17532

Re: how to figure out the size of buffer from malloc

From Ike Naar <ike@sverige.freeshell.org>
Newsgroups comp.lang.c
Subject Re: how to figure out the size of buffer from malloc
Date 2012-02-17 20:23 +0000
Organization A noiseless patient Spider
Message-ID <slrn3vfsjjtdp6.psn.ike@sverige.freeshell.org> (permalink)
References <jhjofu$jer$1@speranza.aioe.org> <jhjq26$rm9$1@reader1.panix.com> <jhk0oi$8cu$1@speranza.aioe.org> <lnipj6fl5m.fsf@nuthaus.mib.org> <jhmaol$qn4$1@speranza.aioe.org>

Show all headers | View raw


On 2012-02-17, pembed2012 <once@was.enough.invalid> wrote:
> myfunc(void* buf){
>   int bufsiz=-1;
>   if(sizeof(buf)==sizeof(void*)) { // pointer

Since the type of buf is void*, the condition is always true.

>     bufsiz=get_malloc_size(buf)'
>   }
>   if(bufsize==-1){ // array
>     bufsiz=sizeof(buf);
>   }
>   // .... process buffer ...
> }
>
> Fully portable is best, but a solution working on 90% of compilers would 
> be OK if I understood right for you say it can't be done 100%

One method that works 100% is to remember the size of the buffer
in a variable, and pass that information to myfunc along with the
pointer to the buffer.

  #include <stdlib.h>

  void myfunc(void *buf, size_t bufsize);

  void using_pointer(void)
  {
    size_t size = 684;
    char *pointer = malloc(size);
    if (pointer != NULL)
    {
      myfunc(pointer, size);
    }
  }

  void using_array(void)
  {
    char array[684];
    myfunc(array, sizeof array);
  }

Back to comp.lang.c | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread


Thread

how to figure out the size of buffer from malloc pembed2012 <once@was.enough.invalid> - 2012-02-16 20:21 +0000
  Re: how to figure out the size of buffer from malloc James Kuyper <jameskuyper@verizon.net> - 2012-02-16 15:38 -0500
  Re: how to figure out the size of buffer from malloc John Gordon <gordon@panix.com> - 2012-02-16 20:48 +0000
    Re: how to figure out the size of buffer from malloc pembed2012 <once@was.enough.invalid> - 2012-02-16 22:42 +0000
      Re: how to figure out the size of buffer from malloc John Gordon <gordon@panix.com> - 2012-02-16 22:50 +0000
      Re: how to figure out the size of buffer from malloc Keith Thompson <kst-u@mib.org> - 2012-02-16 14:50 -0800
        Re: how to figure out the size of buffer from malloc pembed2012 <once@was.enough.invalid> - 2012-02-17 19:45 +0000
          Re: how to figure out the size of buffer from malloc China Blue Sea <chine.bleu@yahoo.com> - 2012-02-17 11:53 -0800
          Re: how to figure out the size of buffer from malloc Ike Naar <ike@sverige.freeshell.org> - 2012-02-17 20:23 +0000
          Re: how to figure out the size of buffer from malloc James Kuyper <jameskuyper@verizon.net> - 2012-02-17 15:33 -0500
            Re: how to figure out the size of buffer from malloc pembed2012 <once@was.enough.invalid> - 2012-02-17 22:13 +0000
              Re: how to figure out the size of buffer from malloc James Kuyper <jameskuyper@verizon.net> - 2012-02-17 17:25 -0500
              Re: how to figure out the size of buffer from malloc Shao Miller <sha0.miller@gmail.com> - 2012-02-17 17:54 -0500
              Re: how to figure out the size of buffer from malloc Keith Thompson <kst-u@mib.org> - 2012-02-17 15:01 -0800
                Re: how to figure out the size of buffer from malloc Shao Miller <sha0.miller@gmail.com> - 2012-02-17 18:10 -0500
              Re: how to figure out the size of buffer from malloc Ian Pilcher <arequipeno@gmail.com> - 2012-02-17 18:14 -0600
              Re: how to figure out the size of buffer from malloc "BartC" <bc@freeuk.com> - 2012-02-18 11:07 +0000
              Re: how to figure out the size of buffer from malloc ImpalerCore <jadill33@gmail.com> - 2012-02-18 04:40 -0800
              Re: how to figure out the size of buffer from malloc Kaz Kylheku <kaz@kylheku.com> - 2012-02-18 12:48 +0000
          Re: how to figure out the size of buffer from malloc Shao Miller <sha0.miller@gmail.com> - 2012-02-17 17:45 -0500
      Re: how to figure out the size of buffer from malloc Shao Miller <sha0.miller@gmail.com> - 2012-02-16 22:18 -0500
  Re: how to figure out the size of buffer from malloc Devil with the China Blue Dress <chine.bleu@yahoo.com> - 2012-02-16 13:20 -0800
  Re: how to figure out the size of buffer from malloc Lew Pitcher <lpitcher@teksavvy.com> - 2012-02-16 17:07 -0500
  Re: how to figure out the size of buffer from malloc Keith Thompson <kst-u@mib.org> - 2012-02-16 14:28 -0800
  Re: how to figure out the size of buffer from malloc Mark Adler <madler@alumni.caltech.edu> - 2012-02-16 23:49 -0800
  Re: how to figure out the size of buffer from malloc Michael Angelo Ravera <maravera@prodigy.net> - 2012-02-18 09:54 -0800
    Re: how to figure out the size of buffer from malloc gazelle@shell.xmission.com (Kenny McCormack) - 2012-02-18 18:21 +0000
      Re: how to figure out the size of buffer from malloc Shao Miller <sha0.miller@gmail.com> - 2012-02-18 13:56 -0500
      Re: how to figure out the size of buffer from malloc Stephen Sprunk <stephen@sprunk.org> - 2012-02-18 13:42 -0600

csiph-web