我在头文件中创建这样的数组:
double (*arrayName)[b][c];
并在 cpp 文件中像这样分配它:
arrayName= new double[a][b][c];
其中 a、b 和 c 是基于我正在处理的数据大小的常量。
如何解除分配这个数组?我尝试在Deallocation of 3 dimensional array中提出建议,但这给了我“警告 C4154:删除数组表达式;转换为提供的指针”并导致堆损坏错误。
我宁愿不要更改为向量,因为我正在使用正在重新利用但需要尽可能与原始代码保持相似的遗留代码。我已经不得不从使用静态分配更改为新建/删除,因为我们正在处理的数据规模正在溢出堆栈。
编辑:WhozCraig 的方法似乎是正确的。我认为我释放这个数组(以及其他类似的数组)的方式是我的问题,但我注意到我的代码中存在另一个问题。我想我已经解决了这个问题,我会在我的程序重新运行完成后报告(至少需要一两天)。感谢所有回复的人。
编辑 2:事情仍然没有 100% 工作,但这些问题超出了这个问题的范围,我能够调整一些值以使事情工作得足够好以完成工作。再次感谢所有回复的人。