的代码如下:我可以在C中释放()静态变量和自动变量吗?
#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()
功能能够释放静态变量,并自动变量两者兼而有之?或者基本上它什么都不做?
它对“作品”的质量定义足够低。即使在相同的系统,相同的编译器或不同的编译选项中,它也可能会崩溃。这只是**未定义的行为** - 任何事情都可能发生,甚至有可能发生。 – Jens