看板 C_and_CPP 關於我們 聯絡資訊
開發平台(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://www.ptt.cc/bbs/C_and_CPP/M.1495038836.A.EB3.html ※ 編輯: larkes (180.177.11.187), 05/18/2017 00:35:30
fatrabitree: 無法 05/18 00:39
larkes: 了解,謝謝~ 05/18 00:45
james732: 你在離開function後那個array就自然消失了 05/18 00:55
b0920075: 刪除是指不佔空間嗎? 05/18 05:24
larkes: @b0920075 是的 05/18 08:18
larkes: @james 謝謝你喔, 05/18 08:19
larkes: 當初的原本用意是希望function執行到一半時 就刪除陣列 05/18 08:19
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
MOONRAKER: 為什麼要這樣 是不是有潔癖 05/18 17:25
Hazukashiine: stack 的大小並不是很大 所以你陣列也不能太大 05/18 17:55
Hazukashiine: 因此在結束前「刪除」陣列也沒什麼意義 05/18 17:55
larkes: 嗯,謝謝樓上兩位 05/19 08:29
RishYang: 一樓精闢解答 05/19 23:50
larkes: :) 05/20 10:33
vaio8937: 靜態分配就是把釋放的權利交給系統了,不必管他 05/23 12:21