Re: [問題] 有關delete與陣列
一.new的使用
乖乖用迴圈填floor(log(n)/log(2))+1的值吧
除非你只要填開頭幾個元素的值,可以這樣用
int * x = new int[4]{1,3};//1,3,0,0
二.陣列與函數的基礎概念
1.陣列不能作為函數參數
int* Preprocess(int a[], int n)等價於int* Preprocess(int *a, int n)
int陣列傳入Preprocess會轉型成int *a
不信的可以用sizeof驗證
2.陣列不能作為函數返回值
但你可以把函數參數弄成陣列的參考,這合法
三.delete時機
如果你要用Preprocess來new的話
那你最好確保只有ctor會呼叫它
然後寫一個對應的釋放函數供dtor呼叫
也就是RAII
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 60.248.56.181
※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1489376230.A.4E1.html
→
03/13 12:06, , 1F
03/13 12:06, 1F
→
03/13 12:10, , 2F
03/13 12:10, 2F
→
03/13 12:10, , 3F
03/13 12:10, 3F
→
03/13 12:11, , 4F
03/13 12:11, 4F
→
03/13 16:53, , 5F
03/13 16:53, 5F
討論串 (同標題文章)
完整討論串 (本文為第 2 之 2 篇):
問題
9
18