gpt4 book ai didi

c++ - 运行时错误:将 .push_back() 与 std::vector 一起使用时出现访问冲突?

转载 作者:太空狗 更新时间:2023-10-29 22:53:37 88 4
gpt4 key购买 nike

我有一个 vector ,定义为 std::vector<LPDIRECT3DTEXTURE9> textures;后来,我传递了一个 LPDIRECT3DTEXTURE9反对它,像这样textures.push_back(texture);这是一个示例:

void SpriteManager::AddSprite(float x, float y, float z, LPDIRECT3DTEXTURE9 texture)
{
//snip
textures.push_back(texture);
//snip
}

这会导致运行时错误。它在 size() 处打破 vector 类功能。为什么会发生这种情况?

编辑:

我在对 D3DXVECTOR3 的 vector 执行相同操作时也遇到了相同的问题对象。自 LPDIRECT3DTEXTURE9是指向 IDIRECT3DTEXTURE9 的指针,我应该改用它吗?

最佳答案

好吧,由于匈牙利名称的 LPDIRECT3DTEXTURE9 是一个指针而不是一个对象(正如您所指的),我的猜测是您正在传递已经完成了 fandango 的无效指针。在你调用 push_back() 之前在你可怜的 vector 对象上。

我可能是错的,但是从您提供的信息中可以说的就这么多了。而且,是的,只有当您内存不足或试图在 vector 中使用不可复制或不可分配的对象时, push_back() 才应该失败,而不是通过访问冲突。

关于c++ - 运行时错误:将 .push_back() 与 std::vector 一起使用时出现访问冲突?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1804148/

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