Re: malloc with size 0
From: Carl Daniel [VC++ MVP] (cpdaniel_remove_this_and_nospam_at_mvps.org.nospam)
Date: 11/09/04
- Next message: Igor Tandetnik: "Re: Start windows application from the command line"
- Previous message: AliR: "Re: Start windows application from the command line"
- In reply to: Liz: "malloc with size 0"
- Messages sorted by: [ date ] [ thread ]
Date: Tue, 9 Nov 2004 08:54:42 -0800
Liz wrote:
> on MSDN, it says that if size is 0, then malloc would return a valid
> pointer. But the behavior of malloc on unix is if size is 0, then
> malloc would return null. Does anyone know if malloc had always
> returned valid pointer for size 0 or only in recent releases. If
> this is a new behavior, does anyone know if there is a compiler flag
> that would make malloc return null so my code can be backward
> compatible?
Both are allowed by the C and C++ standards - a portable program can't rely
on one implementation or another.
C99 says (pay particular attention to the last sentence):
7.20.3 Memory management functions
The order and contiguity of storage allocated by successive calls to the
calloc, malloc, and realloc functions is unspecified. The pointer returned
if the allocation succeeds is suitably aligned so that it may be assigned to
a pointer to any type of object and then used to access such an object or an
array of such objects in the space allocated (until the space is explicitly
deallocated). The lifetime of an allocated object extends from the
allocation until the deallocation. Each such allocation shall yield a
pointer to an object disjoint from any other object. The pointer returned
points to the start (lowest byte address) of the allocated space. If the
space cannot be allocated, a null pointer is returned.
If the size of the space requested is zero, the behavior is
implementation-defined: either a null pointer is returned, or the behavior
is as if the size were some nonzero value, except that the returned pointer
shall not be used to access an object.
-cd
- Next message: Igor Tandetnik: "Re: Start windows application from the command line"
- Previous message: AliR: "Re: Start windows application from the command line"
- In reply to: Liz: "malloc with size 0"
- Messages sorted by: [ date ] [ thread ]
Relevant Pages
|