c - 从C中的堆栈中释放内存
问题描述
只是想知道是否有办法在运行时释放或减少从堆栈分配的内存。前任:
int num[10] = {1,2,3,4};
我可以在运行时释放 6*4 字节(假设 int 需要 4 个字节)吗?
解决方案
局部变量使用的内存在定义它们的块结束时被回收。它们不能像动态分配的内存那样被释放。
如果您需要调整正在使用的内存量,请使用malloc
/分配内存free
:
int *num = malloc(NUM_BYTES);
...
int *tmp = realloc(num, NEW_NUM_BYTES);
if (tmp) num = tmp;
...
free(num);
推荐阅读
- pandas - 将字符串转换为日期时间对象时出现空值错误
- utf-8 - JMeter 非 gui 传递 UTF-8 参数
- reactjs - 无法读取未定义的属性“markdownRemark”(GatsbyJS)
- python - 将多个条件逻辑应用于唯一帐户实例
- python - 为什么会出现一个黑框而不是我的图标 python tkinter
- save-as - 使用多个数据库保存
- javascript - 传单瓷砖边缘显示
- firebase - Firebase 分析事件到达 BigQuery 的延迟不一致
- javascript - 每 60 秒运行一次函数
- python - Python pandas read csv 不断改变我的日期时间格式,当我专门将它指定为字符串或对象格式时仍然会发生