Kod jest następująco:Czy mogę zwolnić() statyczne i automatyczne zmienne w 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;
}
próbuję skompilować powyższy kod i to działa, jestem ciekawy sposób free()
funkcja stanie uwolnić zarówno statyczną zmienną, a także zmienną automatyczną? Lub w zasadzie nic nie robi?
"Działa" dla wystarczająco niskiej jakości definicji "prac". Może również zawieść, nawet w tym samym systemie, ten sam kompilator lub różne opcje kompilacji. To po prostu ** niezdefiniowane zachowanie ** - wszystko może się zdarzyć, nawet coś, czego się spodziewamy. – Jens