2012-10-30 128 views
-1

我需要填寫dae_prim *array_prim;其中dae_prim是我創建的類。Objective-C:指針運算

我想使用C風格,因爲我會將所有這些數據傳遞給OpenGL。

當我試圖使: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對象,你應該使用簡單的C結構將數據傳遞給OpenGL。) –

+0

用更多的代碼編輯我的問題 @JeremyRoman不,頭可以,我可以使用所有類及其成員 – IggY

回答

2

你需要使用一個雙指針作爲mesh-> prims,因爲你需要一個指針數組。

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]; 

乾杯。