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, 6518👍, 0💬
Popular Posts:
How To Return Top 5 Rows? - MySQL FAQs - SQL SELECT Statements with JOIN and Subqueries If you want ...
What is normalization? What are different types of normalization? It is set of rules that have been ...
What is the output of printf("%d")? 1. When we write printf("%d",x); this means compiler will print ...
How To Create an Add-to-My-Yahoo Button on Your Website? - RSS FAQs - Adding Your Feeds to RSS News ...
How do we configure “WebGarden”? “Web garden” can be configured by using process model settings in...