2012-10-30 2 views
-1

dae_prim *array_prim;을 입력해야합니다. 여기서 dae_prim은 내가 만든 클래스입니다.Objective-C : 포인터 연산

OpenGL에 모든 데이터를 전달하기 때문에 C 스타일을 사용하고 싶습니다.

내가 만들려고 할 때 : mesh->array_prim[i] = mysexyprim "아래 첨자는 인터페이스의 크기가 필요합니다"라는 메시지와 함께 실패합니다.

나는 Obj-C가 NSArray를 사용하기를 원한다고 생각하지만 어떻게 이것을 우회 할 수 있습니까?

더 코드

class meshes: 
@public: 
    dae_prim *prims; 
    int primcount; 

.

model->meshes->prims = malloc(sizeof(dae_prims*) * model->meshes->primcount); 
dae_prim *prims = [[dae_prim alloc]init]; 
model->meshes->prims[1] = prims; //here is the problem 
+0

일부 코드가 도움이됩니다. – Eimantas

+2

'dae_prim'을 완전히 정의한 헤더를 포함하지 않았을 가능성이 큽니다. 그러나 당신은 많은 정보를 제공하지 않았습니다. Objective-C 객체를 저장하는 경우 데이터를 OpenGL에 전달하기 위해 간단한 C 구조체를 사용해야합니다. –

+0

더 많은 코드로 내 질문을 편집했습니다. @JeremyRoman 아니요, 헤더가 정상입니다. 모든 클래스 및 해당 멤버를 사용할 수 있습니다. – IggY

답변

2

당신은 당신이 포인터의 배열을 원하는대로, 프림> meshes-에 대한 이중 포인터를 사용할 필요가있다.

class meshes: 
@public: 
    dae_prim **prims; /* a C array of objects pointers */ 
    int primcount; 

model->meshes->prims = malloc(sizeof(dae_prims*) * model->meshes->primcount); 
model->meshes->prims[1] = [[dae_prim alloc]init]; 

건배.