gpt4 book ai didi

c++ - 初始化一个指针但没有得到相同的值零

转载 作者:行者123 更新时间:2023-11-30 02:14:33 26 4
gpt4 key购买 nike

我的问题来自于在两个不同的编译器中编译下面的代码。我在 Eclipse Helios 和在线 GDB 编译器中输入了以下代码行,得到了不同的结果:

    int* ptr1 = new int;  
int* ptr2 = new int(20);

cout << "Value of ptr1 = " << *ptr1 << "\n";
cout << "Value of ptr2 = " << *ptr2 << "\n";

delete ptr1; // Destroying ptr1
delete ptr2; // Detroying ptr2

对于Online GDB,结果是:

Value of ptr1 = 0
Value of ptr2 = 20

然而,Eclipse Helios的结果是:

Value of ptr1 = 225472
Value of ptr2 = 20

它只是告诉我 ptr1 现在在其中保存了一些垃圾值而不是零吗?

最佳答案

Is it just telling me ptr1 is now holding some garbage value in it rather than zero?

是的,该值不能保证为零。对于 default initialization ,

(强调我的)

otherwise, nothing is done: the objects with automatic storage duration (and their subobjects) are initialized to indeterminate values.

所以两个编译器的观察结果都是合理的。

关于c++ - 初始化一个指针但没有得到相同的值零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57643175/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com