gpt4 book ai didi

c++ - 指针有问题?

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

几个小时以来,我一直在摸不着头脑,试图找出崩溃的原因。

这就是它的基本作用。

我有一个名为 Table 的图形用户界面组件。我需要 1000 张 table 。不多也不少。 Table同时继承自Widget和DynamicElement。我需要能够传递组件的地址(指针,而不是拷贝),所以我需要它们不要移动。

我的第一次尝试成功了。我使用了 Table* 的 vector ,每个表都单独分配在堆上。这种方法有点慢,而且有可能会无缘无故地将堆碎片化,因为我正好需要 1000 个。

我想到的下一个解决方案是让父类拥有 Table m_tables[1000]。

我看不出为什么这不起作用,但是当我这样做时,它崩溃了。事实上,任何时候我似乎试图做一些涉及 &m_tables[x] 的事情都会出错。

每当有东西试图访问通过执行 &m_tables[i] 获得的指针时,它就会因 0xccccccccc 违规而崩溃。

有什么我不明白的地方吗?

下面是我如何创建一个表:

void LobbyTableManager::createTable( int tableId )
{
m_tables[tableId] = LobbyTable(m_fontMan,m_spriteMan,tableId);
LobbyTable* t = &m_tables[tableId];
t->addChairActionListeners(this);
t->addMouseListener(this);
t->addChairMouseListeners(this);
t->getTable()->addMouseListener(this);
t->rescale(1.0f);
m_activeTables.push_back(t);
//rescaleTables();

m_flow->add(t);
resizeFlow();
updateScrollBars();
}

我将表格添加到流布局中,第二次尝试使用它时崩溃了。

我尝试使用 std 列表,理论上它应该产生与我第一次尝试相同的结果,但它也崩溃了。

谢谢

最佳答案

VC 调试版本使用 0xCCCCCCCC 初始化未初始化的变量。

( list of special values )

在调试器下启动程序,这样您就可以看到发生在哪一行代码上。如果这不是您的代码,请向上调用堆栈,直到您位于“您的”代码中。

关于c++ - 指针有问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9853691/

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