→ proLIONS:you should use **a instead of *a09/18 12:50
→ proLIONS: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)
推 QQ29:用*&阿 09/18 15:21
推 nowar100:我來自推一下 置底十三誡No.13 XD 09/18 15:22
→ jackwei:原來有*&這種用法 又受教啦 09/18 15:33
→ x000032001:看到這篇我才搞懂*& = =a 09/18 15:46
→ LPH66:*& 是 C++ 才有的喔~ 寫 C 的還是得用這篇的方法 XD 09/18 16:13
推 purpose:不知不覺,從十誡變成十三誡了 09/18 16:15