在 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
。它们使用随机垃圾数据进行初始化。
如果你想用0
、NULL
或nullptr
(all the same thing)初始化它:
int *vector1 = 0; // or NULL, or nullptr.
所以我的代码中有这些语句(还有很多其他行,但这给我带来了麻烦):
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
。它们使用随机垃圾数据进行初始化。
如果你想用0
、NULL
或nullptr
(all the same thing)初始化它:
int *vector1 = 0; // or NULL, or nullptr.