繁体   English   中英

EXC_BAD_ACCESS,OPENGL ES

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM