Tag: invalid pointer

是否在C中获取无效指针的值未定义或实现定义的行为?

根据此,获取无效指针的值是C ++中的实现定义行为。 现在考虑以下C程序: #include #include int main(void) { int* p=(int*)malloc(sizeof(int)); *p=3; printf(“%d\n”,*p); printf(“%p\n”,(void*)p); free(p); printf(“%p\n”,(void*)p); // Is this undefined or implementation defined in behaviour C? } 但是C中的行为也一样吗? 上述C程序的行为是否未定义或实现定义? C99 / C11标准对此有何看法? 请告诉我C99和C11的行为是否不同。