C-malloc()动态分配内存和 free()释放内存

代码实例


int *p;
p = (int *)malloc(sizeof(int)*5);
if(p == NULL){
printf("内存分配失败!");
return 0;
}
free(p);
p = NULL;

malloc() : 动态申请内存,后括号内为分配长度(int * 5 即分配了连续的可以存放5个 int 值的内存),如果分配成功则返回指向被分配内存的指针(返回第一块内存的地址,类似数组),否则返回空指针 NULL (用来判断内存是否分配成功)。当内存不再使用时,应使用free()函数将内存块释放。

free() : 释放malloc(或calloc、realloc)函数给指针变量分配的内存空间的函数
使用后该指针变量一定要重新指向NULL,防止野指针出现,有效 规避误操作。
//此题目中 free(p),则是释放 malloc 分配的那五块内存。