malloc函数处理内存时需注意什么,它分配内存大小有限制吗?如果要分配空间很大(如超过1G)怎么处理?

我要计算一个数组很大的程序,要将计算结果都保存;我采用的就是结果有多大就分多少空间,但发现无法分配。数组大小为1320000*5*5*15*8*2 byte

分配的内存大小肯定是有限制的,因为你的电脑内存是有限的啊!至于要分配1G的空间,需要这么大空间的我还没有见过呢。如果需要处理的话,最好分段处理,处理完了再处理其他的。至于怎么分段,我没有遇到过,所以说不上来。^_^

你可以尝试用文件的知识做。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-09-20
1.注意申请格式
type *p = NULL;
if (NULL == (p = (type *)malloc(sizeof (type))))
{
perror("malloc");
exit(1);
}
...
free(p);
p = NULL;

2.申请1G的空间,你开玩笑吧,我反正没这么做过,至于大小我不知道。追问

我要计算一个数组很大的程序,要将计算结果都保存;我采用的就是结果有多大就分多少空间,但发现无法分配。请问你有什么好的建议吗?我编程比较菜。

追答

可以看下代码吗?

本回答被提问者和网友采纳
第2个回答  2012-10-20
分配太大硬盘就要吱吱的响了。
第3个回答  2012-09-20
执行分配语句后,判断一下,再执行后面的语句吧
第4个回答  2012-09-20
这么大 ,看一下堆栈方面的设置吧
相似回答
大家正在搜