C ++标准究竟在哪里说取消引用未初始化的指针是未定义的行为?
到目前为止,我无法找到如何推断以下内容:
int* ptr;*ptr = 0;
是未定义的行为。
首先,有5.3.1 / 1表示这*意味着转换T*为的间接T。但这对UB没有任何说明。
*
T*
T
然后经常引用3.7.3.2/4说在非空指针上使用解除分配函数会使指针无效,之后无效指针的使用是UB。但是在上面的代码中没有关于释放的内容。
如何在上面的代码中推导出UB?
慕工程0101907
撒科打诨
相关分类