gpt4 book ai didi

c - 向函数发送指针数组

转载 作者:行者123 更新时间:2023-11-30 17:50:20 25 4
gpt4 key购买 nike

我在文件顶部声明了一个指针数组,如下所示。

GLuint *buffers[2];

我希望将数组的实际值传递给 gl 函数来生成缓冲区:

GL_API void GL_APIENTRY glGenBuffers(GLsizei n, GLuint *buffers);

这是 API 条目。我无法更改该功能,Khronos/Apple(通过扩展)可以。

我尝试过:

glGenBuffers(2, *buffers);

没有运气。我不知道这是否可能,我假设不可能,但如果有可能,它会让我的程序更容易编写。

这个例子并不是我实际使用它的方式,我计划编写一个基于请求的几何加载器,它将生成所有缓冲区并将 malloc 分割成更大的缓冲区,以减少调用并加快速度性能。

编辑:如果这是人们的建议,我无法更改 glGenBuffers 函数。

编辑:我现在意识到我的要求似乎是多么荒谬,我只是希望 c 可能有一个功能说这些是指针,所以编辑它们的值,在详细考虑这一点后,这似乎很可笑。我可能只会分配一个缓冲区数组,而不是使我的原始指针(在单独的类文件中)等于该值: *originalBuffer[i] = generatedBuffer[i];循环中。

最佳答案

鉴于 API 条目(从您的注释复制到问题中)和变量声明,您无法将指针数组传递给函数。

你可以这样写:

GLuint buffer[2];

glGenBuffers(2, buffer);

你可以这样写:

GLuint *buffers[2];
buffers[0] = malloc(number * sizeof(GLuint));
buffers[1] = malloc(number * sizeof(GLuint));
glGenBuffers(number, buffers[0]);
glGenBuffers(number, buffers[1]);

其中任何一个都尊重 API。

关于c - 向函数发送指针数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17322757/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com