【发布时间】:2015-09-15 05:16:17
【问题描述】:
我有一个组织为
的二维数组float vertices[3][3]
在我的程序的一个迭代循环中,我在调试器中看到数组已填满:
vertices[0] = {-1, -1, 1}
vertices[1] = {-1, -.5, .5}
vertices[2] = {-.5, -1, .5}
然后我将三个顶点传递给我的三角形类。
Triangle *t = new Triangle(vertices[0], vertices[1], vertices[2]);
triangles.push_back(*t);
三角形构造函数编码如下:
Triangle::Triangle(float *a, float *b, float *c)
{
memcpy(v1, a, sizeof(a));
memcpy(v2, b, sizeof(b));
memcpy(v3, c, sizeof(c));
}
我的调试器现在显示
v1 = {-1, -431602080, -431602080}
v2 = {-1, -431602080, -431602080}
v3 = {-.5, -431602080, -431602080}
调试器还显示 a/b/c 只有 1 个元素长? 那么显然只有数组的第一个元素被传递?
【问题讨论】:
-
还需要传递数组的大小!