在 C++ 中初始化指针?

Initializing a pointer in C++?

所以我的代码中有这些语句(还有很多其他行,但这给我带来了麻烦):

int *vector1;

if (vector1 == NULL)
    {

    }

当我尝试 运行 它说 "uninitialized local variable 'vector1' used" 如果我输入“&vector1 == NULL”,它不会抱怨,但也无法正常工作。

我真的不明白为什么会出现这个错误。如果 vector1 没有指向任何东西,我希望它做一些事情。

int *vector1 = NULL;
if (vector1 == NULL)
{

}

会很好

int *vector1 = nullptr;
if (vector1 == nullptr)
{

}

如果您想了解最新信息,也可以使用。

默认情况下,指针未设置为 NULL。答案为什么在这里: Why aren't pointers initialized with NULL by default?

警告 uninitialized local variable 'vector1' used 告诉您您正在使用 vector1,即使您还没有初始化它。因此,它的值可能是任何值。

指针(非static指针)不是默认初始化为0。它们使用随机垃圾数据进行初始化。

如果你想用0NULLnullptrall the same thing)初始化它:

int *vector1 = 0; // or NULL, or nullptr.