c - 你如何在 C 中完全删除一个数组,直到你可以重新初始化它?

标签 c arrays

如:如何恢复内存,并将数组删除到可以稍后在程序中再次初始化的程度?像这样:

char * array[][2] = {
{"bla","bla","bla"},
{"blabity","blabity","bla"}
}
// Delete array
sizeof(array) == NULL;
char * array[][2] = {
{"bla","bla","bla"},
{"blabity","blabity","bla"}
}

最佳答案

你不能。使用方括号定义的数组(在函数1 的范围之外)会直接编译到您的程序中,因此无法释放。但是,您可以通过再次向其写入初始内容来重新初始化它。如果你希望能够随意创建和销毁一个数组,你需要将它存储为一个指针并使用mallocfree

1:在一个函数中,每次函数运行时都会在堆栈上创建数组,并在函数退出时销毁,除非它被定义为静态变量。您仍然无法在不返回的情况下取消分配它。

关于c - 你如何在 C 中完全删除一个数组,直到你可以重新初始化它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5905065/

相关文章:

c++ - 使用 C++ 在两个排序数组中查找匹配值索引的最有效方法

python - Numpy - 对数组中的代表节点网络的数字进行排序

c - 在 C 命令行中传递多个参数

在运行时在函数中创建结构数组

无法将 int 打印到文件

jquery - 使用 jQuery 将 TM 添加到文本中?

javascript - 为什么这个对象循环不起作用?

Python:将列单元格内的每个数组转换为单个字符串

c - 用 ASCII 表示 UTF-8

c - 尝试从 .txt 文件复制整数时出现段错误