相关疑难解决方法(0)

C++标准究竟在哪里说取消引用未初始化的指针是未定义的行为?

到目前为止,我无法找到如何推断以下内容:

int* ptr;
*ptr = 0;
Run Code Online (Sandbox Code Playgroud)

是未定义的行为.

首先,有5.3.1/1表示这*意味着转换T*为的间接T.但这对UB没有任何说明.

然后经常引用3.7.3.2/4说在非空指针上使用解除分配函数会使指针无效,之后无效指针的使用是UB.但是在上面的代码中没有关于释放的内容.

如何在上面的代码中推导出UB?

c++ standards undefined-behavior language-lawyer

11
推荐指数
5
解决办法
3494
查看次数

为什么这个程序会在printf上出现段错误?

当我打电话时,为什么这只是c程序段错误printf

#include<stdio.h>
int main() {
        char* f;
        char* b;
        *f = 'x';
        b = f;
        *b = 'y';
        printf("%c", *f);
}
Run Code Online (Sandbox Code Playgroud)

我希望'y'能够打印出来.我取消引用f获得角色,对吗?

c

6
推荐指数
0
解决办法
217
查看次数

标签 统计

c ×1

c++ ×1

language-lawyer ×1

standards ×1

undefined-behavior ×1