calloc(), malloc(), realloc(), free() 这几个函数说明

发布时间:2010-03-24 22:41:17

calloc(), malloc(), realloc(), free()

void *calloc(size_t nobj, size_t size);
分配足够的内存给nobj个大小为size的对象组成的数组, 并返回指向所分配区域的第一个字节的指针;
若内存不够,则返回NULL. 该空间的初始化大小为0字节.

char *p = (char *) calloc(100, sizeof(char));


void *malloc(size_t size);
分配足够的内存给大小为size的对象, 并返回指向所分配区域的第一个字节的指针;
若内存不够,则返回NULL. 不对分配的空间进行初始化.

char *p = (char *) malloc(sizeof(char));


void *realloc(void *p, size_t size);
p所指向的对象的大小改为size个字节.
如果新分配的内存比原内存大, 那么原内存的内容保持不变, 增加的空间不进行初始化.
如果新分配的内存比原内存小, 那么新内存保持原内存的内容, 增加的空间不进行初始化.
返回指向新分配空间的指针; 若内存不够,则返回NULL, p指向的内存区不变.

char *p = (char *) malloc(sizeof(char));
p= (char *) realloc(p, 256);


void free(void *p);
释放p所指向的内存空间; pNULL, 不起作用.
p必先调用calloc, mallocrealloc.

free(p);

calloc(), malloc(), realloc(), free() 这几个函数说明

相关推荐