作者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/cn.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