El código es el siguiente:¿Puedo liberar() variables estáticas y automáticas en 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;
}
intento compilar el código anterior y funciona, tengo curiosidad que hace la función free()
capaz de liberar tanto la variable estática y también variable automática? O básicamente no hace nada?
"Funciona" para una definición de "trabajos" con una calidad suficientemente baja. También puede bloquearse, incluso en el mismo sistema, el mismo compilador o diferentes opciones de compilación. Es simplemente ** un comportamiento indefinido **: cualquier cosa puede suceder, incluso algo esperado. – Jens