此文是参考http://www.cplusplus.com/reference/cstdlib/里的动态内存管理部分所写,如发现有问题和不足之处,请参看原文,最好能帮忙指出,谢谢。
1.void* malloc (size_t size);
malloc:分配一块size Byte大小的内存,返回一个指向该块内存开始的指针,指针类型是void。其中size_t代表无符号整形类型
例如:
int *number;
number = (int *)malloc(sizeof(int));//分配一个大小为sizeof(int)的存储空间,
//返回的指针需要强转成需要的类型
if(NULL == number)//判断调用是否成功,不成功就退出
{
exit(0);
}
*number = 100;//内存里的内容没有被初始化,值不确定,这里要记得初始化
free(number);//用完之后要free,释放内存
number = NULL;//防止出现野指针
如果调用失败,则返回空指针
2.void* calloc (size_t num, size_t size);
calloc:为一个大小为num的数组分配内存,每个元素的大小是size,把每个元素初始化为0int *number;
int i = 0;
number = (