[英]EXC_BAD_ACCESS, OPENGL ES
我收到此错误,我无法弄清原因。 是类型问题吗? 错误就在网上:
“大小= 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;
崩溃可能是因为objmesh是无效的指针(NULL或只是悬空指针)。 当您访问与无效指针相关的内存时,您将崩溃。
或这是另一个原因。 据我了解,objmesh是一个容纳一些数据及其大小的容器。 当你这样做的时候
objmesh = &objmesh[0];
objmesh不再是容器,而是它包含的数据。 因此,您应该使用另一个变量进行赋值。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.