2012-07-19 29 views
0

我最近開始在使用OpenGL的iOS應用程序中做一些事情。如何在Objective-C(iOS)的運行時動態創建一個數組?

我發現這個教程已經是一個巨大的幫助:

www.raywenderlich.com/3664/opengl-es-2-0-for-iphone-tutorial

typedef struct 
{ 
    float Position[3]; 
    float Color[4]; 
} Vertex; 

const Vertex Vertices[] = { ... }; 
const GLubyte Indices[] = { ... }; 

glBufferData(GL_ARRAY_BUFFER, sizeof(Vertices), Vertices, GL_STATIC_DRAW); 
glBufferData(GL_ELEMENT_ARRAY_BUFFER, sizeof(Indices), Indices, GL_STATIC_DRAW); 

我需要一個變量/結構體的數組,因爲內容取決於運行時發生的事情,而且不是靜態的。

當我直到運行時才知道數組中元素的數量時,如何定義和創建動態數組?

我需要使用malloc或類似的東西嗎?我還沒有遇到任何爲iPhone應用程序分配內存的例子,所以我有點警惕。任何意見或方向將不勝感激。

+0

是的,你需要的malloc()。或者,您可以依賴GCC擴展並編寫'GLFloat頂點[someVariable];' – 2012-07-19 07:23:27

回答

3

使用malloc:

Vertex* verts; 
    void Load() 
    { 
     int SIZE=200; 
     verts=(Vertex*)malloc(sizeof(Vertex)*SIZE);//in c you dont need (Vertex*) 
    } 
+0

您可以展示如何使用它存儲vert?我已經嘗試將頂點分配給頂點,但它不會允許(預期的表達式)。 – 2014-05-16 14:04:25