4 回答

TA貢獻(xiàn)1784條經(jīng)驗(yàn) 獲得超7個贊
shortTargets[1] 沒有開辟內(nèi)存空間,肯定是亂碼了
可以這么初始化:
for(int i=0;i<fileSum;i++)
shortTargets[i] = new int[10];

TA貢獻(xiàn)1880條經(jīng)驗(yàn) 獲得超4個贊
你這樣定義了指針數(shù)組后,相當(dāng)于定義了一組指針,但是這些指針都沒有賦值。
可以
shortTargets[1] = NULL;
類似的給指針賦值為空,
或者
shortTargets[1] = new int[10];
給指針分配內(nèi)存空間。

TA貢獻(xiàn)1820條經(jīng)驗(yàn) 獲得超3個贊
指針數(shù)組 還沒有被初始化,當(dāng)然都是亂碼:
int **shortTargets;
shortTargets = new int *[fileSum];
memset(shortTargets, 0, fileSum);
再看下shortTargets[1]的值是不是0了。

TA貢獻(xiàn)1824條經(jīng)驗(yàn) 獲得超6個贊
事實(shí)如此 C++任何非void對象都有地址,包括指針 指針的指針.. debug下new 對象自動初始化為0xcdcdcdcd,也就是shortTargets[1]的初始值.shortTargets使用一般會有二次類初始化賦值,即 先有
shortTargets=new int *[fileSum];
for(int i=0;i<fileSum;++i)
shortTargets=new int;//該賦值按實(shí)際使用賦值
- 4 回答
- 0 關(guān)注
- 144 瀏覽
添加回答
舉報