C语言堆内存的分配和使用
创建内存
根据大小分配内存
void *malloc(size) size 分配的内存大小 返回指针如果返回NULL 就是分配失败 返回的类型为void *类型所以说使用前得转换
int * p_h = (int *)malloc(100); 分配100字节大小的内存
根据长度分配内存
void *calloc(int num,int size) 在内存中动态分配num个长度为size的连续空间 并且每一个字都初始化为0 malloc不会初始化为0 同样的返回指针 如果失败返回NULL
重新分配内存
void *realloc(void *prt,size); 重新调整之前分配内存的大小 prt需要填入分配内存的指针 如果为空指针会创建一块大小为size的内存分配,,并且会返回一个指向的指针
null=rellalloc(p_h,size); 重新分配指针p_h的内存 大小为size 分配失败会返回NULL
释放内存
void free(void *address); 释放address指向的内存块,释放的是malloc 等函数申请出来的空间