簡體   English   中英

C++將文本文件讀入數組,運行報錯:segmentation fault

[英]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 )。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM