[問題] 蠢問題 一般陣列可以刪除嗎?

看板C_and_CPP作者 (灰狼)時間13年前 (2010/12/11 20:13), 編輯推噓5(5025)
留言30則, 8人參與, 最新討論串1/1
爬過的資料 好像只有new出來的動態宣告可以刪除 不知道一般 int g[n] 出來的是否有辦法刪除 因為程式要跑回圈 大小可能要重新宣告這樣 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 123.195.8.91

12/11 20:16, , 1F
stack-dynamic array, 函式跑完就刪除了
12/11 20:16, 1F

12/11 20:18, , 2F
請不要理1F...
12/11 20:18, 2F

12/11 20:31, , 3F
刪了代表stack要整個變動耶
12/11 20:31, 3F

12/11 20:35, , 4F
想看程式碼是怎樣, 需要考慮到這個...
12/11 20:35, 4F

12/11 20:44, , 5F
love四連發!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
12/11 20:44, 5F

12/11 20:44, , 6F
我要被愛沖昏頭了!!
12/11 20:44, 6F

12/11 20:45, , 7F
沒啦 目前發現do while裡面的宣告屬於區塊 所以暫時OK
12/11 20:45, 7F

12/11 20:47, , 8F
用了 VLA 卻不自知= ="
12/11 20:47, 8F

12/11 22:14, , 9F
那我可以順便問一下 假如我今天要定一個變數
12/11 22:14, 9F

12/11 22:14, , 10F
在function裡面可以用的 有辦法在main裡面做到嗎?
12/11 22:14, 10F

12/11 22:15, , 11F
就是不是在外面定義globle的 = ="
12/11 22:15, 11F

12/11 22:20, , 12F
樓上...我第一個念頭是傳值(逃)
12/11 22:20, 12F

12/11 22:34, , 13F
就是我傳過去以後 void Q(double QQ[N])
12/11 22:34, 13F

12/11 22:34, , 14F
但是這個N的大小 我在main裡面才會知道
12/11 22:34, 14F

12/11 22:35, , 15F
我一直踹 好像不用 #define不行 = =
12/11 22:35, 15F

12/11 22:35, , 16F
可是我一開始不知道
12/11 22:35, 16F

12/11 22:40, , 17F
我有做過和你類似的事, 當時是寫 GA, 一定要用 new,
12/11 22:40, 17F

12/11 22:40, , 18F
不然就用 vector
12/11 22:40, 18F

12/11 22:41, , 19F
N不知道的話 那就改用動態配置的陣列吧 或vector
12/11 22:41, 19F

12/11 22:43, , 20F
傳成函式的話: void Q(double *QQ, size_t QQ_size);
12/11 22:43, 20F

12/11 22:43, , 21F
再多傳一個大小過去就好了
12/11 22:43, 21F

12/11 22:44, , 22F
樓上兩位大大所言甚是 有如當頭棒喝!
12/11 22:44, 22F

12/11 22:45, , 23F
我知道大小可以用傳的 剛剛卡在矩陣怎樣直接傳大小
12/11 22:45, 23F

12/11 22:45, , 24F
現在懂了!
12/11 22:45, 24F

12/11 23:00, , 25F
把陣列的第一個值,設定為陣列大小如何?
12/11 23:00, 25F

12/11 23:14, , 26F
樓上作法如果用到二維以上的話,應會浪費不少空間吧?
12/11 23:14, 26F

12/12 04:14, , 27F
與其樓樓上的作法 我會乾脆包成struct...
12/12 04:14, 27F

12/12 15:15, , 28F
請問包成struct的意思是指:一個int跟一個pointer嗎?
12/12 15:15, 28F

12/12 21:39, , 29F
可以這麼說,一個存陣列的size,一個存ptr.
12/12 21:39, 29F

12/12 21:39, , 30F
到二維、三維以上的時候就有2、3個int存size...
12/12 21:39, 30F
文章代碼(AID): #1D0shai7 (C_and_CPP)