Categories:
.NET (357)
C (330)
C++ (183)
CSS (84)
DBA (2)
General (7)
HTML (4)
Java (574)
JavaScript (106)
JSP (66)
Oracle (114)
Perl (46)
Perl (1)
PHP (1)
PL/SQL (1)
RSS (51)
Software QA (13)
SQL Server (1)
Windows (1)
XHTML (173)
Other Resources:
malloc Function
Why does malloc(0) return valid memory address? What's the use?
✍: FYIcenter
malloc(0) does not return a non-NULL under every implementation. An implementation is free to behave in a manner it finds suitable, if the allocation size requested is zero. The implmentation may choose any of the following actions:
* A null pointer is returned.
* The behavior is same as if a space of non-zero size was requested. In this case, the usage of return value yields to undefined-behavior.
Notice, however, that if the implementation returns a non-NULL value for a request of a zero-length space, a pointer to object of ZERO length is returned! Think, how an object of zero size should be represented?
For implementations that return non-NULL values, a typical usage is as follows:
void func ( void ) {
int *p; /* p is a one-dimensional array,
whose size will vary during the
the lifetime of the program */
size_t c;
p = malloc(0); /* initial allocation */
if (!p) {
perror ("FAILURE");
return;
}
/* ... */
while (1) {
c = (size_t) ...; /* Calculate allocation size
*/
p = realloc ( p, c * sizeof *p );
/* use p, or break from the loop */
/* ... */
}
return;
}
Notice that this program is not portable, since an implementation is free to return NULL for a malloc(0) request, as the C Standard does not support zero-sized objects.
2007-02-26, 7614👍, 0💬
Popular Posts:
Can a variable be both const and volatile? Yes. The const modifier means that this code cannot chang...
What is the difference between Authentication and authorization? This can be a tricky question. Thes...
How to convert a Unix timestamp to a Win32 FILETIME or SYSTEMTIME? The following function converts a...
what are the advantages of hosting WCF Services in IIS as compared to self hosting? There are two ma...
Can you please post OpenLink Endur related FAQ's,tutorials,document s.Thanks