如何在Objective-C(iOS)中在运行时动态创建数组?

时间:2012-07-19 07:18:56

标签: ios4 opengl-es-2.0

我最近开始使用OpenGL在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应用程序分配内存的例子,所以我有点小心。任何建议或指示都将不胜感激。

1 个答案:

答案 0 :(得分:3)

使用malloc:

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