1.malloc()函数
1.malloc()函数会在堆上开辟连续的内存。申请完内存之后值为随机值。
2.包含在头文件stdlib.h或者malloc.h里面。
3.int * p = (int *)malloc(内存大小),需要注意malloc函数返回的是void指针。
4.最大分配2g不到的内存,当请求分配4G的内存空间时,会显示内存分配成功,实质上分配失败。
5.用断言判断内存是否成功。
6.malloc()请求的内存需要使用free()函数手动释放。且释放完之后将指针置为NULL。
2.free()函数
1.free()函数的原理:free的时候指针会回退到存储内存信息的的地方。
2.free失败的原因:
指针移动。
重复释放同一块内存。
释放了不是动态内存申请的空间。
越界。
3.calloc()函数
int *p2 =int *)calloc(5,sizeof(int));//申请5个int内存。默认值为0.
4.realloc()函数
int p3=(int)realloc(p2,10*sizeof(int));//将原来内存扩大两倍,默认值为随机值。
如果后续内存足够扩展,则向后延展,若内存不够,则重新分配内存。