[問題] function 傳指標

看板C_and_CPP (C/C++)作者 (麵T)時間10年前 (2015/07/08 20:58), 10年前編輯推噓4(4011)
留言15則, 7人參與, 最新討論串1/1
請問如何將黃色部分的程式碼合併成紅色部分? double add(double input[2]) { return input[0]+input[1]; } ... 略 呼叫函式 add double ans = add(new double[2]{1.5,2.5}); ////////////////////// 印象中有看過把 double input[2]={1.5,2.5}; double ans = add(input); 兩行合併成一行的寫法,但卻一直想不起來。 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 39.15.128.112 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1436360316.A.FD5.html ※ 編輯: noodleT (39.15.128.112), 07/08/2015 20:59:08

07/08 21:09, , 1F
我只想問 紅色的寫法不會造成memory leak嗎?
07/08 21:09, 1F

07/08 21:09, , 2F
在add 裡面delete [] 又怪怪的
07/08 21:09, 2F

07/08 21:17, , 3F
這我不能確定,只是印象中有看過
07/08 21:17, 3F

07/08 21:19, , 4F

07/08 21:29, , 5F
似乎沒用到這樣
07/08 21:29, 5F

07/08 21:41, , 6F
你需要 C++11
07/08 21:41, 6F

07/08 21:44, , 7F
如果就是要這樣的話就是同樓上..
07/08 21:44, 7F

07/08 22:07, , 8F
所以你想要 new 一個東西出來, 存到某處(以後可能繼續用)
07/08 22:07, 8F

07/08 22:07, , 9F
然後再呼叫 add?
07/08 22:07, 9F

07/08 22:20, , 10F
double add(double const (&input)[2]);
07/08 22:20, 10F

07/08 22:21, , 11F
double ans = add({1.5,2.5});
07/08 22:21, 11F

07/09 00:15, , 12F
印象中有 new 這關鍵字,但還是謝謝大家提供不同的方法
07/09 00:15, 12F

07/09 04:20, , 13F
紅字的寫法跟 Java 有三分像
07/09 04:20, 13F

07/09 04:23, , 14F
一般來說 C++ 的 new 跟 delete 會成對出現
07/09 04:23, 14F

07/09 04:25, , 15F
並且寫出 new 的人要負責寫 delete
07/09 04:25, 15F
文章代碼(AID): #1LdHvy_L (C_and_CPP)
文章代碼(AID): #1LdHvy_L (C_and_CPP)