for(int i=0;i<=9;i++){char a[38],b[13],c[13];for(int j=0;j<=37;j++)infile>>a[j];infile.seekg(1,ios::cur);for(int j=0;j<=13;j++)infile>>b[j];infile.seekg(61,ios::cur);for(int j=0;j<=13;j++)infile>>c[j];infile.seekg(89,ios::cur);p[i]=new genesequence(a,b,c);}new能不能這樣用啊,在調(diào)試的時候?yàn)槭裁串?dāng)執(zhí)行第二次循環(huán)是程序就崩了編譯器是VS2012
1 回答

PIPIONE
TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超9個贊
負(fù)責(zé)分配一個動態(tài)的內(nèi)存空間 —— 在程序運(yùn)行時分配,而不是編譯前分配。
int *a = new int; //分配一個int型數(shù)據(jù)的存儲空間。沒有變量名,用指針
//a來調(diào)用。int可以換成其他類型。
...
delete a; //調(diào)用結(jié)束后,記住用delete刪掉分配的空間,以免內(nèi)存泄
//露。
如果是分配的動態(tài)數(shù)組的話,則用另一組new和delete。
int *p[10] = new int[10];
...
delete[];
記住new和delete是成對的,new[]和delete[]也是如此,否則會出現(xiàn)錯誤。
追問
您說的我知道我的new和delete都是成對的上面只是部分代碼,我的意思是在調(diào)試時for循環(huán)中i=0時程序正常,i=1時執(zhí)行到p[i]=new genesequence(a,b,c);這句時編譯器跳出這個,請問是哪里錯了
- 1 回答
- 0 關(guān)注
- 819 瀏覽
添加回答
舉報(bào)
0/150
提交
取消