EXC_BAD_ACCESS,OPENGL ES

时间:2012-10-20 23:22:48

标签: ios opengl-es 3d

我收到了这个错误,这是我无法弄清楚的原因。这是类型问题吗? 错误在线:
“size = objmesh-> n_objvertexdata * sizeof(vec3)* sizeof(vec3);”
不知道它是什么,一直在摆弄它。帮助

objmesh = &objmesh[0];

unsigned char *vertex_array = NULL,
*vertex_start = NULL;
unsigned int i = 0, index = 0, stride = 0, size = 0;


size = objmesh->n_objvertexdata * sizeof(vec3) * sizeof(vec3); //this lines gives error

vertex_array = (unsigned char *) malloc(size);
vertex_start = vertex_array;

while (i != objmesh->n_objvertexdata) {
    index = objmesh->objvertexdata[i].vertex_index;

    memcpy(vertex_array, &obj->indexed_vertex[index], sizeof(vec3));
    vertex_array += sizeof(vec3);

    memcpy(vertex_array, &obj->indexed_normal[index], sizeof(vec3));

    vertex_array += sizeof(vec3);
    ++i;

1 个答案:

答案 0 :(得分:0)

崩溃可能是因为objmesh是一个无效指针(NULL或只是悬空指针)。当你相对于无效指针访问内存时,你将会崩溃。

或者这是另一个原因。据我所知,objmesh是一个容纳一些数据和容量的容器。当你这样做时

objmesh = &objmesh[0];

objmesh不再是容器,而是它拥有的数据。所以你应该使用另一个变量进行分配。