C++将文本文件读入数组,运行错误:分段错误
C++ read text file into array, run error: segmentation fault
我正在尝试将文本文件读取到3D数组中。编译进行得很顺利,但我遇到了运行错误:"分段错误"。有人有什么建议吗?非常感谢。
#include <fstream>
using namespace std;
const int x = 288;
const int y = 288;
const int z = 30;
float realimg[x][y][z];
Array<std::complex<float>,3> realimage(x,y,z);
Array<std::complex<float>,3> imagimage(x,y,z);
ifstream fin1("realfile.txt");
for ( int kk = 0; kk < z; ++kk )
{
for ( int jj = 0; jj < y; ++jj )
{
for ( int ii = 0; ii < x; ++ii )
{
fin1 >>realimg[ii][jj][kk];
realimage(ii,jj,kk)=realimg[ii][jj][kk];
}
}
}
const int x = 288;
const int y = 288;
const int z = 30;
float realimg[x][y][z];
这将在堆栈上分配realimg
数组。此数组的大小为288*288*30*sizeof(float) == 9953280 bytes == 9.5MiB
。在典型的Linux系统上,默认堆栈大小为8MiB
。
如果在执行ulimit -s unlimited
之后崩溃消失,那么堆栈耗尽确实是您的问题。一种可能的解决方案是在堆上分配readlimg
(使用malloc
)。
相关文章:
- 代码在main()中运行,但在函数中出现错误
- 为什么在运行时没有向我们提供有关分段错误的更多信息?
- 删除指向指针的指针是运行时错误吗
- c++中的指针和运行时错误
- VSCode-有一个红色下划线,但程序构建和运行正确,并且出现配音错误
- 通过 sh 导入模块错误运行.py脚本
- 如何修复分段错误运行时错误
- C++,弹出调试断言失败窗口,我得到矢量迭代器不兼容的错误运行时
- QT错误:运行代码后,在QT中获得Protobuf错误
- VBA 中的 Qt5 Dll,错误运行时错误 453
- 错误:运行时检查失败 #2 - 变量周围的堆栈已损坏
- 为什么我在没有calloc函数的情况下得到错误运行时
- 我不断收到函数初始化错误.(运行时检查失败 #3)
- C++11 线程错误运行时
- 使用 Qt 创建器错误运行 CGAL 示例
- SIGSEGV错误(运行时错误)
- Visual Studio c++ MSVCR100.dll错误运行时
- 运行时错误 - C++ 运行时检查失败 #2 - 变量"theArray"周围的堆栈已损坏
- OpenGl的错误.运行时立方体顶点位置错误
- c++编程错误-运行时错误