第十一章 动态内存分配
1.动态内存分配在程序运行时进行分配。
2.void *malloc(size_t);
void free(void *pointer);(都定义于stdlib,h)
如果内存池中可用内存满足申请要求,则malloc返回一个指向被分配内存起始位置的指针。
3.malloc分配的是一块连续的内存。
4.如果操作系统无法向malloc(calloc,realloc内存分配失败)提供更多的内存,则返回一个NULL指针。
5.calloc与malloc的主要区别是在返回指向内存的指针之前把它初始化为0,。其次calloc的参数包括需要的元素数量和每个元素的大小。
6.realloc函数用于修改一个原先已经分配的内存块的大小。
如果原先的内存块无法改变大小,realloc将分配另一块正确大小的内存,并把原先那块内存的内容复制到新的块上。
7.alloc.h和malloc.h历史遗迹
8.释放一块内存的一部分是不允许的,动态分配的内存必须整块一起释放,但realloc可以在缩小时,放出尾部。
9.动态分配内存却不释放将导致内存泄漏(浪费内存)。

浙公网安备 33010602011771号