首页 > 解决方案 > 从C中的堆栈中释放内存

问题描述

只是想知道是否有办法在运行时释放或减少从堆栈分配的内存。前任:

int num[10] = {1,2,3,4};

我可以在运行时释放 6*4 字节(假设 int 需要 4 个字节)吗?

标签: carraysmemory-managementstack

解决方案


局部变量使用的内存在定义它们的块结束时被回收。它们不能像动态分配的内存那样被释放。

如果您需要调整正在使用的内存量,请使用malloc/分配内存free

int *num = malloc(NUM_BYTES);
...
int *tmp = realloc(num, NEW_NUM_BYTES);
if (tmp) num = tmp;
...
free(num);

推荐阅读