数据结构中malloc()动态分配概述,本人是新手,希望各位大神讲的细点

如题所述

malloc()函数是一个标准库函数。
它用来在内存中的堆区为变量申请分配指定大小的内存空间。由于是对内存进行操作,所以使用的时候千万要小心,否则很容易出错。
使用malloc()分四部曲:
1.申请, char *p = (char*)malloc(sizeof(char) * 10);
2.判断是否申请成功,if (p == NULL) cout << "apply failed!"; 不要以为申请内存一定能成功,它 是完全有可能会申请失败的。
3.用完释放,free(p);
4.指针指空,p = NULL; 避免野指针

建议:malloc()函数不要用的太过频繁,它会在内存中形成碎片化的小区域,导致后面如果要申请大容量的内存空间失败。不信的话,你可以做个试验,按照上述步骤,循环10000次,到后面你就会发现申请不成功的概率在增大。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-11-18
就是在堆中分配的内存空间,由程序自己管理(也就是开发人员自己管理),在整个程序的任何位置都是可以读写的内存区域。本回答被网友采纳
第2个回答  2012-11-18
p=(struct aaa*)malloc(sizeof(struct aaa));//aaa是结构体的名字
相似回答