gpt4 book ai didi

c++ - 如何检查指向动态分配的单指针的双指针是否为NULL?

转载 作者:行者123 更新时间:2023-11-28 05:24:10 24 4
gpt4 key购买 nike

请看这段代码。

#include <iostream>
#include <list>
using namespace std;

void main()
{
list<int*> m_List;
int* i = new int(1);
m_List.push_back(i);

list<int**> m_pList;
m_pList.push_back(&m_List.front());

list<int*>::iterator iter = m_List.begin();
delete *iter;
*iter = NULL;
cout << *iter << endl;
cout << &*iter << endl;
iter = m_List.erase(iter);

list<int**>::iterator iter2 = m_pList.begin();
cout << **iter2 << endl;
cout << *iter2 << endl;
}

结果:

00000000
00A31A90
DDDDDDDD
00A31A90

&*iter 等于*iter2,但是*iter 不等于**iter2 .

请教我为什么会这样,我该如何解决。

最佳答案

执行m_List.erase(iter);后,m_List为空,**iter2未定义。
(*iter2m_List的第一个元素的地址,不存在。)

很难说如何“解决这个”,因为不清楚“这个”是什么。

关于c++ - 如何检查指向动态分配的单指针的双指针是否为NULL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40888558/

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