周立功“程序设计与数据结构”:深度解剖动态分布内存的free()函数与realloc()函数 下载本文

内容发布更新时间 : 2024/5/3 8:04:11星期一 下面是文章的全部内容请认真阅读。

周立功“程序设计与数据结构”:深度解剖动态分布内存的free()函数与

realloc()函数

周立功教授数年之心血之作《程序设计与数据结构》,书本内容公开后,在电

子行业掀起一片学习热潮。经周立功教授授权,本公众号特对本书内容进行连载,愿共勉之。第一章为程序设计基础,本文为1.9.3 free()函数和1.9.4 realloc()函数。 1.9.3 free()函数 void free(void *pointer);char *pi = malloc(5); char * pi = malloc(5); int *pi = malloc(5 * sizeof(int));

free(pi);free(pi); int

*pi

=

realloc(pi,

10*sizeof(int));

1

#pragma

once1 #include #define NewSaferFree(P) saferFree((void **) 1.9.4 realloc()函数 void *realloc(void *pointer, unsigned int size);

当调用realloc()函数时,point必须指向先前通过malloc、calloc或realloc的调用获得的内存块。size表示新分配内存的大小,以字节为单位。其作用是将pointer所指向的动态空间的大小改变为size,pointer的值不变。如果重新分配不成功,则返回NULL;如果通过malloc()已经获得了动态空间,又不想改变其大小,则可以使用realloc()重新分配。