我的代码:
#include #include int main(void) { int *p = (int *)malloc(sizeof(int)); free(p); *p = 42; return 0; }
我创建了一个指针,然后我将它指向分配的空间,最后我给它分配了42.在我看来它不应该工作,它应该导致分段错误,但它的工作原理.所以为什么?
PS:我通常在Linux上用Gcc编译它
纯粹的运气.在这种情况下的行为是未定义的.即:对可能发生的事情没有任何期望.