Objective c 指向C/ObjC结构中指针的指针
Objective c 指向C/ObjC结构中指针的指针,objective-c,c,pointers,struct,syntax-error,Objective C,C,Pointers,Struct,Syntax Error,我试着研究指针和结构的其他一些问题,但没有发现任何问题。我在上次NSLog调用中遇到错误。NSLog中使用索引和顶点调用的所有内容都是正确的,因此看起来可能是一个简单的语法错误或指针问题。另外,如何增加indexPointer指向的指针?由于indexPointer指向一个索引指针,因此我想通过indexPointer访问索引+1和索引+2。&Indexs+I不指向您分配的任何内存 将indexpoint和vertex更改为单指针,然后 wingedEdges[i].indexPointer =
我试着研究指针和结构的其他一些问题,但没有发现任何问题。我在上次NSLog调用中遇到错误。NSLog中使用索引和顶点调用的所有内容都是正确的,因此看起来可能是一个简单的语法错误或指针问题。另外,如何增加indexPointer指向的指针?由于indexPointer指向一个索引指针,因此我想通过indexPointer访问索引+1和索引+2。&Indexs+I不指向您分配的任何内存 将indexpoint和vertex更改为单指针,然后
wingedEdges[i].indexPointer = &indices[i];
wingedEdges[i].vertex = &vertices[indices[i]];
那么*wingedEdges[i].indexPointer与索引[i]和
WingedGes[i]。顶点->位置[0]与顶点[Index[i]]相同。位置[0]。但是,您将无法获得想要的自动更新。有关更多详细信息,请参阅我的评论。我推荐一个简单的内联函数:
inline *Vertex vertex(WingedEdge* e)
{
return &vertices[*(e->indexPointer)];
}
变量索引初始化代码在哪里?我添加了它,不能把所有的东西都放在这里,否则它会很庞大,但是所有与WingedGes相关的代码都应该在这里。如果你想知道为什么我使用指向指针的指针,那只是为了防止顶点或索引中的值发生变化,这样我就不必再改变wingedEdge的价值观了。小小的技术性。。。这应该称为“半边”,因为它只包含原点顶点。。。无论如何,没那么重要。EXC_BAD_ACCESS,如果我注释这一行并让它填充整个结构数组,我没有问题。编译器不喜欢这样:地址表达式必须是一个Ivalue或函数指示符xcode,但我认为你的思路是正确的,因为如果我只是去索引,那么就没有错误了,这不是我想要的值,需要偏移它。@MCH:indexs[I]如何?不起作用:从“GLushort*”分配给“GLushort**”的不兼容指针类型请尝试上面的编辑。请注意,我认为您确实需要单指针。
inline *Vertex vertex(WingedEdge* e)
{
return &vertices[*(e->indexPointer)];
}