2016-11-04 12 views
0

128x128x128 = 2097152行(線形の3次元空間)に0行または1行しか含まれていない非常に大きな.txtファイルを読み込もうとしていますなぜか)...私はいくつかの行に私のコードを刈り取ったと私はラインとインクリメント、すべてがうまくいくようだ...しかし、私は十分に許可された配列内のデータを入れたいと思うように、ラインの読みは、ここでは、コード大規模な.txtファイルをC++で読み込んだときに奇妙なエラーが発生しました

int dim = nbvox[0]*nbvox[1]*nbvox[2]; 
float* hu_geometry = new float(dim); 
int* hu_temp = new int(dim); 
string line; 

int i = 0; 


ifstream in(hu_geom_file.c_str()); 
if(in.is_open()) 
{ 
    while(getline(in, line)) 
    { 

    hu_temp[i] = stoi(line); 
    cout << "i= " << i << " line= " << line << " hu_temp= " << hu_temp[i] << endl; 
    i++; 
    } 
    cout << __LINE__ << " i=" << i << endl; 
    in.close(); 
    cout << __LINE__ << endl; 
} 
else cout << "Unable to open " << hu_geom_file << endl; 

ここで私はエラーを取得する前に取得する最後の出力...私はトンの内側hu_tempの行をコメントたびので、非常に奇妙であるのですが、のI = 12286 ...

で停止します彼は一方で、COUTは一人で2097152

i= 12276 line= 0 hu_temp= 0 
i= 12277 line= 0 hu_temp= 0 
i= 12278 line= 0 hu_temp= 0 
i= 12279 line= 0 hu_temp= 0 
i= 12280 line= 0 hu_temp= 0 
i= 12281 line= 0 hu_temp= 0 
i= 12282 line= 0 hu_temp= 0 
i= 12283 line= 0 hu_temp= 0 
i= 12284 line= 0 hu_temp= 0 
i= 12285 line= 0 hu_temp= 0 
115 i=12286 
*** Error in `G4Sandbox': free(): invalid pointer: 0x0000000001ba4c40 *** 
Aborted (core dumped) 

答えて

6
float* hu_geometry = new float(dim); 
int* hu_temp = new int(dim); 

まで働くものは値dimを含む1-char型の配列です。ある時点では、MMUの境界線にぶつかり、ランダムにクラッシュします。

あなたが書きたい:

float* hu_geometry = new float[dim]; 
int* hu_temp = new int[dim]; 

または多分dim要素

#include <vector> 
std::vector<float> hu_geometry(dim); 
std::vector<int> hu_temp(dim); 

か開始時に割り当てられて事前に割り当てられたベクトルを、とのより良い:

std::vector<int> hu_temp; 

とであなたのコード:

hu_temp.push_back(stoi(line)); 

+0

私が笑今愚かな感じ...しかし、おかげでたくさん(hu_temp.size()サイズとより良いhereを説明した非常に素晴らしい機能の多くを提供します)...これは3人で審査し、ために働きました。スタックにそれを掲示する前に多くの時間を...私は私たちのコードからいくつかのスペースが必要だと思います... – Feynstein

+0

この問題は常に発生します。それをキャッチするために良い目を必要とします。配列をまったく使用せず、ベクトルを代わりに使用するのは確実です。 –

+0

ええ、私はCUDAと混じっているので、後で私のコードで扱うのが難しいと思っています...私は通常ベクトルを使用しますが、GPUに送る前にそれらと一緒に作業しなければなりません。 – Feynstein

関連する問題