Re: [問題] 函數 陣列 指標 的相關問題?!

看板C_and_CPP (C/C++)作者 (邪月)時間14年前 (2012/02/26 14:29), 編輯推噓1(103)
留言4則, 3人參與, 最新討論串2/2 (看更多)
...略... : 我將問題做成一個簡易的程式碼 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

02/26 14:37, , 1F
1的test(&D);是不是多打了&?
02/26 14:37, 1F

02/26 14:38, , 2F
yes!
02/26 14:38, 2F
※ 編輯: angleevil 來自: 111.251.48.98 (02/26 14:39)

02/26 14:39, , 3F
修正了
02/26 14:39, 3F

02/26 22:07, , 4F
謝謝您!!! 非常感謝 a大您花時間解說~~~ ^^
02/26 22:07, 4F
文章代碼(AID): #1FIT5Fqw (C_and_CPP)
討論串 (同標題文章)
文章代碼(AID): #1FIT5Fqw (C_and_CPP)