作者larkes (larkes)
看板C_and_CPP
標題[問題] C語言有辦法刪除陣列嗎?
時間Thu May 18 00:33:54 2017
開發平台(Platform): (Ex: Win10, Linux, ...)
Linux, ThreadX
編譯器(Ex: GCC, clang, VC++...)+目標環境(跟開發平台不同的話需列出)
gcc
問題(Question):
如果記憶體是用malloc配置,
那我們可以用free把記憶區塊刪除...
但是如果是用靜態宣告陣列的方式
有沒有什麼辦法可以手動刪除那個陣列呢?
例如:
void test_function()
{
int array[10];
}
我想要在test_function()在結束執行之前,
手動把array[]刪除,
請問...C語言有辦法做得到嗎?
是不是取名叫"靜態", 就表示programmer不能自己任意刪除了呢?
謝謝指教!
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 180.177.11.187
※ 文章網址: https://webptt.com/m.aspx?n=bbs/C_and_CPP/M.1495038836.A.EB3.html
※ 編輯: larkes (180.177.11.187), 05/18/2017 00:35:30
1F:→ fatrabitree: 無法 05/18 00:39
2F:→ larkes: 了解,謝謝~ 05/18 00:45
3F:推 james732: 你在離開function後那個array就自然消失了 05/18 00:55
4F:推 b0920075: 刪除是指不佔空間嗎? 05/18 05:24
5F:→ larkes: @b0920075 是的 05/18 08:18
6F:→ larkes: @james 謝謝你喔, 05/18 08:19
7F:→ larkes: 當初的原本用意是希望function執行到一半時 就刪除陣列 05/18 08:19
8F:→ larkes: 不過一樓的版友已經提供答案了 05/18 08:20
※ 編輯: larkes (180.177.11.187), 05/18/2017 08:21:25
※ 編輯: larkes (180.177.11.187), 05/18/2017 08:21:50
9F:→ MOONRAKER: 為什麼要這樣 是不是有潔癖 05/18 17:25
10F:→ Hazukashiine: stack 的大小並不是很大 所以你陣列也不能太大 05/18 17:55
11F:→ Hazukashiine: 因此在結束前「刪除」陣列也沒什麼意義 05/18 17:55
12F:→ larkes: 嗯,謝謝樓上兩位 05/19 08:29
13F:推 RishYang: 一樓精闢解答 05/19 23:50
14F:→ larkes: :) 05/20 10:33
15F:推 vaio8937: 靜態分配就是把釋放的權利交給系統了,不必管他 05/23 12:21