作者angleevil (邪月)
看板C_and_CPP
標題Re: [問題] 函數 陣列 指標 的相關問題?!
時間Sun Feb 26 14:29:31 2012
...略...
: 我將問題做成一個簡易的程式碼 http://ideone.com/PmKhU
...略...
因為13戒已經有詳解,所以我不特別解說你的疑惑.
只大概解說用法的不同,
1.
int test(double* pD)
{
return 1;
}
int main()
{
double D[1000];//也可以用double *D=new double[1000];
test(D);
return 0;
}
這種用法是處理已經開好的陣列,
然後傳入函式.
但是有一種情況是會在函式裡面才給予陣列大小.
就是下面的用法
2.
int test(double** ppD)
{
*ppD = =new double[1000];
return 1;
}
int main()
{
double* D;
test(&D);
return 0;
}
這種的需求是有的,
例如getline這函式,
就是類似的觀念.
當然你也可以用c++ ref的幫忙,
那就變成下面那樣.
int test(double* &ppD)
{
ppD = =new double[1000];
return 1;
}
int main()
{
double* D;
test(D);
return 0;
}
至於其中的原理,請去看13戒.就是置底的文章.
但是以lib 函式的用法,
通常先在傳入函式前先開好空間大小!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 111.251.48.98
→ diabloevagto:1的test(&D);是不是多打了&? 02/26 14:37
→ angleevil:yes! 02/26 14:38
※ 編輯: angleevil 來自: 111.251.48.98 (02/26 14:39)
→ angleevil:修正了 02/26 14:39
推 ieck:謝謝您!!! 非常感謝 a大您花時間解說~~~ ^^ 02/26 22:07