本人小白一枚,最近遇到一個問題想請教各位,該部分程式如下,win10中版本為5.11.0,在win10下可以正常運行讀取檔案,但Ubuntu中程式自動終止為按return退出終端,也不顯示檔案打開失敗,這是什么原因呀?還是彈出return退出終端后我應該等更久呢?
CGPT2_1w_World TROP;
TROP.init_trop();
void CGPT2_1w_World::init_trop()
{
string filename ="gpt2_1wA_World.txt";
fstream infile;
infile.open(filename, ios::in);
if (!infile)
{
qDebug("檔案打開失敗");
assert(false);
}
string strLine;
getline(infile, strLine);
int n =0;
while (getline(infile, strLine))
{
vector <string> arry;
split(strLine, " ", arry);
size_t len = arry.size();
double vel[44];
for (int i = 0; i < len; i++)
{
vel[i] = atof(arry[i].c_str());
}
for(int i=0;i<5;i++)
{
pgrid[n][i] = vel[i+2];
double temp = pgrid[n][i];
Tgrid[n][i] = vel[i+7];
Qgrid[n][i] = vel[i+12]/1000;
dTgrid[n][i] = vel[i+17]/1000;
ahgrid[n][i] = vel[i+24]/1000;
awgrid[n][i] = vel[i+29]/1000;
lagrid[n][i] = vel[i+34];
Tmgrid[n][i] = vel[i+39];
}
u[n] = vel[22];
Hs[n] = vel[23];
n++;
}
infile.close();
qDebug("初始化完成!\n");
}
uj5u.com熱心網友回復:
現在除錯發現temp下有一潭訓色波浪線,除錯錯誤好像是包含空指標所以例外退出,請問這怎么改呀uj5u.com熱心網友回復:
pgrid = new double *[64800];Tgrid = new double *[64800];
Qgrid = new double *[64800];
dTgrid = new double *[64800];
u = new double[64800];
Hs = new double[64800];
ahgrid = new double *[64800];
awgrid = new double *[64800];
lagrid = new double *[64800];
Tmgrid = new double *[64800];
是否是創建的是new臨時變數,導致函式結束時會釋放導致成為空指標?
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/56168.html
標籤:Qt
