【发布时间】:2018-11-14 22:48:18
【问题描述】:
代码如下:
#include <stdlib.h>
int num = 3; // Static external variable
int *ptr = #
int main(void)
{
int num2 = 4; // Automatic variable
int *ptr2 = &num2;
free(ptr); //Free static variable
free(ptr2); //Free automatic variable
return 0;
}
我尝试编译上面的代码并且它可以工作,我很好奇free() 函数是否能够同时释放静态变量和自动变量?还是基本上什么都不做?
【问题讨论】:
-
对于“作品”的足够低质量定义,它“有效”。即使在相同的系统、相同的编译器或不同的编译选项上,它也可能崩溃。这只是未定义的行为——任何事情都可能发生,甚至是预期的事情。
标签: c free scope static-variables dynamic-allocation