gpt4 book ai didi

C++ STL 容器中的 NULL 指针

转载 作者:太空宇宙 更新时间:2023-11-04 14:46:31 25 4
gpt4 key购买 nike

不幸的是,我没有完全开发自己开发的程序。 我最近注意到 unordered_set 的 operator-- 上的 Visual Studio fatal error ,它是通过简单插入指向 unordered_set 的指针调用的。在审查了本地人之后,我注意到 set 只有 2 个元素,最后一个是 NULL(所以我想这就是它崩溃的原因)。现在的问题是:unordered_set(或任何其他 STL 容器)如何(理论上)获得 NULL 指针作为其元素之一。程序是多线程的,但根据我的评论,那部分代码只能从一个线程访问。谢谢。

调用栈和部分源码供有兴趣者引用: http://privatepaste.com/c8e7f35a4e (PushToProcessed 是从 Object 本身调用的,它传递对自身的引用,因此不能为 NULL)

最佳答案

集合可以包含可以为 NULL 的指针。

#include <iostream>
#include <vector>

int main () {
std::vector<int *> foo;
foo.push_back (NULL);
std::cout << foo.size () << std::endl;
return 0;
}

容器很容易包含 NULL 值。您是在谈论容器的内部结构变得困惑吗?

关于C++ STL 容器中的 NULL 指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2067611/

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