malloc calloc realloc

 

 1calloc(), malloc(), realloc(), free() 
 2
 3
 4void *calloc(size_t nobj, size_t size);
 5分配足够的内存给nobj个大小为size的对象组成的数组, 并返回指向所分配区域的第一个字节的指针;
 6若内存不够,则返回NULL. 该空间的初始化大小为0字节.
 7char *= (char *) calloc(100sizeof(char));
 8
 9 
10
11void *malloc(size_t size);
12分配足够的内存给大小为size的对象, 并返回指向所分配区域的第一个字节的指针;
13若内存不够,则返回NULL. 不对分配的空间进行初始化.
14char *= (char *) malloc(sizeof(char));
15
16
17void *realloc(void *p, size_t size);
18将p所指向的对象的大小改为size个字节. 
19如果新分配的内存比原内存大, 那么原内存的内容保持不变, 增加的空间不进行初始化.
20如果新分配的内存比原内存小, 那么新内存保持原内存的内容, 增加的空间不进行初始化.
21返回指向新分配空间的指针; 若内存不够,则返回NULL, 原p指向的内存区不变.
22char *p,*q; 
23= (char *) malloc(sizeof(char)); 
24q= (char *) realloc(p, 256); 
25if (q==NULL) 
26return -1
27p=q; 
28
29 
30
31 
32
33void free(void *p);
34释放p所指向的内存空间; 当p为NULL时, 不起作用.
35p必先调用calloc, malloc或realloc.
36free(p);
37
posted @ 2007-03-27 18:15  Edward Xie  阅读(250)  评论(0)    收藏  举报