C++動(dòng)態(tài)刪除數(shù)組

2022-09-23 10:41

2022-09-23 10:43
循環(huán)刪除里的delete[] x[N]要改成delete[] x[i]
更多回答
Complex **X; //定義指向Complex指針的指針x;
X=new Complex *[N]; //聲請(qǐng)N個(gè)Complex指針,然后讓x指向它;
for(i=0;i{X[i]=new Complex[N];}//分別使N個(gè)指針指向N個(gè)complex的對(duì)象。

所有的這些個(gè)工作等同于:Complex (*X)[N] = new Complex [N][N];
即是定義一個(gè)指向有N個(gè)元素的行指針X。刪除元素:
for (int j = 0; j < 2; ++j)
delete x[j]; //或delete []x[i];都可以的。
你的由于是單個(gè)動(dòng)態(tài)申請(qǐng)的內(nèi)存;
for(i=0;i{delete []X[i];}//刪除數(shù)組元素,但是你申請(qǐng)的N個(gè)行指針還沒有刪除。

delete []x;//刪除n個(gè)行指針。
很簡(jiǎn)單

是因?yàn)樯暾?qǐng)的空間沒有完全釋放,所以才會(huì)執(zhí)行的時(shí)候有錯(cuò)
熱門問答