本人小白,写的C++程序在分配大规模数组时出现bad alloc问题,可是内存足够啊?

本人小白,写的C++程序在分配大规模数组时出现bad alloc问题,可是内存足够啊?,第1张

你态让申请的内存空间太大了,而且还敬戚是连续的内存空间。

2*5000*4000*150 /1024/1024/1024 = 5.58G这么大的连续内存空间申请不到的,自然就报错了。帆稿局

第一张图是因为断点出现在dll内部,所以无法查看

第一张图已备运经表明了是bad_alloc异常,请检查是否使用了连续数组存储数据,以及是否使用了vector或者自定义了预扩容仿闷梁方法,因为这时new可能会分配内存失罩运败抛出bad_alloc异常(电脑内存不一定是99%,只是正好没有这么长的连续内存空间了),可以尝试分割为多个数组,使用多个指针,存储在内存中多个位置

判差蔽断栈是否满,判断条件应该是top_p==maxSize-1,修改如尘并下:

template<class T>派庆迹

bool seqStack<T>::isFull()const

{

if(top_p==maxSize-1) return true// WangYou: 等于的时候表示满了

else return false

}


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/12509496.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-26
下一篇 2023-05-26

发表评论

登录后才能评论

评论列表(0条)

保存