常见动态内存分配的函数
1.malloc
使用方法 void *malloc (unsigned size) ,size是分配的字节数。包含在库函数stdlib.h中。
作用:在内存的堆区分配一个大小为size的连续空间。如果分配成功,返回新分配内存的首地址,否则返回NULL。
#include <stdio.h>
#include <stdlib.h>
int main(){
int *p = (int *)malloc(4*sizeof(int));
if(p!=NULL){
//内存申请成功
}else{
//申请失败
}
free(p); //释放p的内存空间
p = NULL;
return 0;
}
2.calloc
格式:calloc(块数,长度)
//分配4块,每块内存长度为4的内存空间
int *p = (int *)calloc(4,sizeof(int));
注意事项:可以帮分配的内存空间初始化为0
3.relloc
作用:可以给已经存在的空间扩充大小。
#include <stdio.h>
#include <stdlib.h>
int main(){
int *p = (int *)malloc(4*sizeof(int));
//扩充p的大小,首地址可能变也可能不变
p = relloc(p,40*sizeof(int));
if(p!=NULL){
//内存申请成功
}else{
//申请失败
}
return 0;
}
|
|