小编Par*_*135的帖子

g++ 与 MS c++ 中的未初始化指针

最近,我阅读了一个编码示例,其中解释了以下内容会导致 Visual Studio 中的编译器错误:

int* pointer1;
*pointer1 = 10;
Run Code Online (Sandbox Code Playgroud)

作者声称由于pointer1在解引用之前未初始化,所以在Visual Studio中出现如下错误:

C4700:使用了未初始化的局部变量“pointer1”

确实如此。这个场景是有道理的。

但是,如果我使用完全相同的代码并使用 g++ 进行编译,则不会发生编译器错误并且我可以pointer1以任何正常方式自由使用。

为什么会有差异?g++ 是否pointer1在初始化之前分配了地址?

c++ pointers initialization g++ gcc-warning

2
推荐指数
1
解决办法
49
查看次数

标签 统计

c++ ×1

g++ ×1

gcc-warning ×1

initialization ×1

pointers ×1