[Quote=引用 12 楼 molonvely 的回复:]
7.20.3 Memory management functions
1 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
(unt…
[/Quote]
sizeof函数需要和内存分配函数一致
So...
7.20.3 Memory management functions
1 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 implementationdefined:
either a null pointer is returned, [color=#FFFF00]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.[/color]
大部分的库里malloc函数处理size=0时分配1个大小的空间。
好像只有GLIB的处理是返回一个NULL指针