一.动态内存管理函数
1. malloc
1. void *malloc(字节大小);
2. 功能:malloc 函数在静态区开辟一块未初始化的新内存分配给我们的程序。在后面需要用memset(内存地址,0,新内存大小);来初始化。
3. 返回值: 3.1 :开辟成功:返回指向新开辟的内存空间的指针,类型根据实际情况强制转换。
3.2 :开辟失败:返回空NULL。
2. calloc
1. void* calloc(开辟内存单元的个数,每个内存单元的大小);
2. 功能: 申请已被初始化的内存。
3.返回值:在申请到内存空间后,将内存初始化为0.
**内存被初始化为0
3. realloc 扩容函数
1. void* realloc(要扩容的内存地址,扩容后的新大小);
2. 功能:对已有的内存大小进行调整扩容。
3. 返回值:扩容后内存起始地址。
二.使用动态内存出现奔溃
原因:1.对同一块内存进行重复释放
避免重复释放:free(p); p=NULL; //将内存置为NULL free(p);
2.p指向动态内存空间,修改了p指向的位置。