Re: [問題] 有關 new 和 delete

看板C_and_CPP作者 (吐司)時間15年前 (2010/09/18 14:54), 編輯推噓3(303)
留言6則, 6人參與, 最新討論串2/2 (看更多)

09/18 12:50,
you should use **a instead of *a
09/18 12:50

09/18 12:51,
you may think of **a as something like *a[]
09/18 12:51
感謝p兄指教 改成這個樣子的確就可以了: void change(int **a, int &length) { delete [] *a; length += 2; *a = new int [length]; for(int i=0;i<length;i++) (*a)[i] = i+1; } int main() { int length = 3; int *a = new int [length]; int **aa = &a; for(int i=0;i<length;i++)a[i]=i+1; for(int i=0;i<length;i++)cout<<a[i]<<" "; for(int i=0;i<5;i++){ change(aa, length); for(int j=0;j<length;j++)cout<<a[j]<<" "; cout<<endl; } delete [] a; return 0; } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.160.43.22 ※ 編輯: jackwei 來自: 118.160.43.22 (09/18 14:55)

09/18 15:21, , 1F
用*&阿
09/18 15:21, 1F

09/18 15:22, , 2F
我來自推一下 置底十三誡No.13 XD
09/18 15:22, 2F

09/18 15:33, , 3F
原來有*&這種用法 又受教啦
09/18 15:33, 3F

09/18 15:46, , 4F
看到這篇我才搞懂*& = =a
09/18 15:46, 4F

09/18 16:13, , 5F
*& 是 C++ 才有的喔~ 寫 C 的還是得用這篇的方法 XD
09/18 16:13, 5F

09/18 16:15, , 6F
不知不覺,從十誡變成十三誡了
09/18 16:15, 6F
文章代碼(AID): #1Cb68fUj (C_and_CPP)
討論串 (同標題文章)
文章代碼(AID): #1Cb68fUj (C_and_CPP)