0

我使用GLMmodel对象来表示 C++ 程序中的 Google Sketch Up 模型。这些对象有一个成员(顶点),其中包含对象所有顶点的列表,其方式如下:[GLfloat x 顶点 1 分量,GLfloat 顶点 1 分量,GLfloat z 顶点 1 分量,GLfloat x 分量顶点 2...]。当我读取所有这些值时,除了前三个(第一个顶点的坐标)都是三个 -431602080.000000 之外,我得到了所有这些值的小数字。这在我的程序中没有意义。我用谷歌搜索了它,我发现这个值经常出现在 C++ 程序中,但我不知道它是什么意思。有任何想法吗?

4

1 回答 1

6

是的,这是一个“神奇的价值”。当您使用调试器查看变量时,使用十六进制视图,您将看到 0xcdcdcdcd。这不是一个偶然的值,而是 Microsoft CRT 的调试分配器使用的值。一方面,可能还有其他人。它将您使用 malloc 或 new 分配的任何内存初始化为此值。当然,对于 float 或 double 类型的变量并不是很清楚,对于 int 和 strings 更容易,对于指针尤其有用。假设您使用的是 MS CRT,此处记录了调试分配器魔法值。

您忘记初始化该值。这是您的代码中的一个错误。

于 2012-04-14T18:14:02.960 回答