【发布时间】:2014-03-12 01:39:22
【问题描述】:
所以我的代码中有一个测试元素向量 (teste),因此我可以检查我的一个函数中元素的添加和删除。定义如下:
std::vector<GLuint> teste = {
0, 1, 2,
4, 3, 5
};
稍后我有一个函数打印这个和我的函数生成的元素向量
for(size_t i = 0; i < TestBuffer.Elements.size(); ++i){
std::cout << "!" << i << std::endl;
std::cout << TestBuffer.Elements[i] << std::endl;
std::cout << teste[i] << std::endl;
}
它产生以下输出
!0
0
0
!1
1
1
!2
2
2
!3
4
4
!4
3
4294967293
!5
5
4
这到底是怎么回事? NOTHING 在定义 teste 后对其进行编辑。 teste[4] 的值也不会改变(注意:我不认为该值是 GLuint 的最大值,因为 GLuint -1 的值为 244294967295)。
编辑:
我不会包含所有代码,因为它超过 1000 行,没有人愿意阅读。 Here 是编辑 TestBuffer(BufferData)的函数,here 是声明和使用 teste 的地方。
这也是使用 OpenGL,因此 GLuint 是 OpenGL 无符号整数。
【问题讨论】:
-
代码中存在问题,您没有显示。发布一个给出问题的完整程序。
-
@MattMcNabb 我希望它有 7 个文件,其中大部分与这部分代码无关(这是我尝试 3d 模型渲染器的一部分)
-
注释掉部分代码,直到它停止发生...可能会提供线索
-
你能在valgrind下运行吗?如果它检测到内存错误,那很可能就是原因。
-
@C.R.我以前从未听说过 valgrind,感谢您向我介绍它