[問題] function 傳指標

作者: noodleT (麵T)   2015-07-08 20:58:34
請問如何將黃色部分的程式碼合併成紅色部分?
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);
兩行合併成一行的寫法,但卻一直想不起來。
作者: Dforce (VF-17)   2015-07-08 21:09:00
我只想問 紅色的寫法不會造成memory leak嗎?在add 裡面delete [] 又怪怪的
作者: noodleT (麵T)   2015-07-08 21:17:00
這我不能確定,只是印象中有看過
作者: Feis (永遠睡不著 @@)   2015-07-08 21:19:00
作者: noodleT (麵T)   2015-07-08 21:29:00
似乎沒用到這樣
作者: s25g5d4 (function(){})()   2015-07-08 21:41:00
你需要 C++11
作者: Feis (永遠睡不著 @@)   2015-07-08 21:44:00
如果就是要這樣的話就是同樓上..
作者: suhorng ( )   2015-07-08 22:07:00
所以你想要 new 一個東西出來, 存到某處(以後可能繼續用)然後再呼叫 add?
作者: kevingwn (如雲如風的人生)   2015-07-08 22:20:00
double add(double const (&input)[2]);double ans = add({1.5,2.5});
作者: noodleT (麵T)   2015-07-09 00:15:00
印象中有 new 這關鍵字,但還是謝謝大家提供不同的方法
作者: linotwo (._.)   2015-07-09 04:20:00
紅字的寫法跟 Java 有三分像一般來說 C++ 的 new 跟 delete 會成對出現並且寫出 new 的人要負責寫 delete

Links booklink

Contact Us: admin [ a t ] ucptt.com