Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/146.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 是<;空时的结构>;与“相同”;结构为空";?_C++_Visual Studio_Visual Studio 2013 - Fatal编程技术网

C++ 是<;空时的结构>;与“相同”;结构为空";?

C++ 是<;空时的结构>;与“相同”;结构为空";?,c++,visual-studio,visual-studio-2013,C++,Visual Studio,Visual Studio 2013,在VisualStudio中,BuildVision给了我一个错误,消息是 它是与“Struct Is Null”相同,还是有所不同 我这样问是因为我在网上找不到任何有此消息的内容。我所能找到的只是指向“Struct is Null”,但我所找到的并没有帮助我!我想知道这是否是因为的 编辑: 我添加了一个带有-Stuff的调试器窗口屏幕。我还有第二个问题:我想用if-else子句捕捉这个异常。我怎么说呢 if(value == <struct at NULL>) this()

在VisualStudio中,BuildVision给了我一个错误,消息是atNull>

它是与“Struct Is Null”相同,还是有所不同

我这样问是因为我在网上找不到任何有此消息的内容。我所能找到的只是指向“Struct is Null”,但我所找到的并没有帮助我!我想知道这是否是因为的

编辑:

我添加了一个带有-Stuff的调试器窗口屏幕。我还有第二个问题:我想用if-else子句捕捉这个异常。我怎么说呢

if(value == <struct at NULL>)
    this()
else
    that()
(晚了三个月,但这是我的最佳搜索结果。希望我能帮助别人。)

回答第一个问题:是,
表示对对象(结构或类)的引用为空。此消息可能会出现一个悬空引用,就像您的情况一样。它也可以与悬空/空指针一起出现

因此,对于第二个问题,在您的示例中,是对
发行版
对象本身的引用导致了问题,因此您可能在某处寻找一个悬空引用


MSV中人们经常忽略的一个有用特性是数据断点。如果你不熟悉他们,你可以。例如,在这种情况下,它可以帮助您跟踪您的
分布
变量是否在您意想不到的地方受到影响。

我最近也遇到了这个问题。在我的例子中,它是由一个引用引起的,该引用是通过取消对空指针的引用而初始化的。基本上是这样的:

Foo * fooPtr = nullptr;
// ...
Foo & fooRef = *fooPtr;
// ...
fooRef.Bar() // read access violation
即使在第三行抛出异常,问题实际上也在第二行,因为取消引用空指针是未定义的行为。这里,它创建了一个对无效对象的引用,VisualStudio调试器将该对象表示为
。尝试访问此无效对象的成员会导致读访问冲突

如果仍要验证引用是否为
,可以通过将其地址与null进行比较来进行验证:

if (&fooRef != nullptr)
{
    fooRef.Bar();
}
以下是一些关于无效引用的其他有趣问题:


错误代码是什么?抱歉,但我不相信“”是完整的错误消息发布代码?at表明你在玩弄指针。也许指向指针的指针我试图调用
strategy->plot()
形式的东西,而strategy是一个自定义类指针。出现的错误消息位于“Acces rading违例…”窗口中。BuildVision中的错误只是我认为您需要编辑问题以获得最小的、可验证的示例噢,天哪,我很抱歉,我只是忘记了喜欢并接受这个答案^^。希望你仍然很活跃,这条消息会传到你那里=)@Mona别担心!:)
if (&fooRef != nullptr)
{
    fooRef.Bar();
}