如何从C中的char数组中释放内存

Abh*_*aha 23 c

我创建了一个像这样的char数组:

char arr[3] = "bo";
Run Code Online (Sandbox Code Playgroud)

如何释放与名为"arr"的数组相关联的内存?

rul*_*lof 58

当函数结束时,自动释放局部变量,您不需要自己释放它们.您只释放动态分配的内存(例如使用malloc),因为它在堆上分配:

char *arr = malloc(3 * sizeof(char));
strcpy(arr, "bo");
// ...
free(arr);
Run Code Online (Sandbox Code Playgroud)

有关动态内存分配的更多信息:http://en.wikipedia.org/wiki/C_dynamic_memory_allocation


Ker*_* SB 12

你根本没有任何自由.由于您从未动态获取任何资源,因此您无需拥有任何资源,甚至可以免费获取资源.

(这与您说的时间相同int n = 10;:您不必手动管理动态资源.)


Dav*_*nan 6

arrarr超出范围时,与之关联的内存将自动释放.它既可以是局部变量,也可以是静态分配的,但不是动态分配的.

您可以遵循的一个简单规则是,您必须只对调用free()返回的指针进行每次调用malloc,calloc或者realloc.