Мой код:
#include <stdio.h>
#include <stdlib.h>
int main(void) {
int *p = (int *)malloc(sizeof(int));
free(p);
*p = 42;
return 0;
}
Я создал указатель, затем я указал его на выделенное пространство, и, наконец, я назначил ему 42. По-моему, это не должно работать, это должно вызвать ошибку сегментации, но она работает. Итак, почему?
PS: Я обычно скомпилировал его с помощью Gcc на Linux