gpt4 book ai didi

c++ - C++ 类中的指针变得杂乱无章

转载 作者:行者123 更新时间:2023-11-30 02:07:24 24 4
gpt4 key购买 nike

我现在有很多代码让我发疯。我正在使用 OpenGL,构建一个使用多种不同类型对象的 GUI 框架。我有加载 *.png 文件并以 GLuint 纹理引用的形式存储图像信息的图像类。我有 Panel 和 Button 类,它们带有指向它们应该显示的图像类的指针。我有一个带有 std::vectors 面板和按钮指针的 Hud 类。最后,我有一个 Engine 类,其中包含一个 Hud 类、我所有的 Button 和 Panel 类以及 Image 指针。当构造函数运行时,每个图像指针都使用以下方法初始化:

imgMy = new Image;

一旦所有图像都已初始化,我将运行我的加载函数:

imgMy->loadImage("imgMy.png");

当然,我在关闭程序时会删除图像。

我的问题是某些图像出现“交叉”。我现在有大约三十张图片,其中一些按钮显然指向了错误的图片。我已经彻底检查了我的代码,它看起来很可靠。我认为这是一个内存错误,因为显示不正确图像的按钮不一致。有时它们显示正确的图像,有时不同的按钮显示错误的图像。我希望我能在这里展示我的代码,但它非常庞大。

我在 Engine 类中使用 Image 指针而不是实际 Image 对象的原因是,如果调整 Engine 类的大小或其内存重新排列,我担心 Buttons 指向无效内存。我怀疑有更好的方法来实现我想要完成的目标,如果能提供任何相关建议,我将不胜感激。

最佳答案

使用调试器让您在相关的 imgMy 上放置一个观察点,然后调试器会告诉您它们在哪里被修改。这可能是追踪它的最简单方法。

您可能还想尝试 valgrind,但这听起来不像是 valgrind 会发现的问题类型。

关于c++ - C++ 类中的指针变得杂乱无章,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7904191/

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