C++ 向函数传递指针不起作用,但硬编码确实起作用
我有以下功能:C++ 向函数传递指针不起作用,但硬编码确实起作用,c++,c,opengl,glfw,C++,C,Opengl,Glfw,我有以下功能: void transferData(GLuint* vertex, GLuint* vertexBuffer, GLuint* vertexColorBuffer, GLfloat* vertexValues, GLfloat* vertexColorValues) { glGenVertexArrays(1, vertex); glBindVertexArray(*vertex); glGenBuffers(1, vertexBuffer); glBindBu
void transferData(GLuint* vertex, GLuint* vertexBuffer, GLuint* vertexColorBuffer, GLfloat* vertexValues, GLfloat* vertexColorValues) {
glGenVertexArrays(1, vertex);
glBindVertexArray(*vertex);
glGenBuffers(1, vertexBuffer);
glBindBuffer(GL_ARRAY_BUFFER, *vertexBuffer);
glBufferData(GL_ARRAY_BUFFER, sizeof(vertexValues), vertexValues, GL_STATIC_DRAW);
glGenBuffers(1, vertexColorBuffer);
glBindBuffer(GL_ARRAY_BUFFER, *vertexColorBuffer);
glBufferData(GL_ARRAY_BUFFER, sizeof(vertexColorValues), vertexColorValues, GL_STATIC_DRAW);
}
然后通过以下方式调用:
//VAO
GLuint sinVAO;
GLuint cosVAO;
//Buffers
GLuint sinBuffer;
GLuint cosBuffer;
//Color
GLuint sinColorBuffer;
GLuint cosColorBuffer;
static GLfloat sinValues[(NUM_SIN_POINTS + 1) * 3];
static GLfloat sinColorValues[(NUM_SIN_POINTS + 1) * 3];
static GLfloat cosValues[(NUM_COS_POINTS + 1) * 3];
static GLfloat cosColorValues[(NUM_COS_POINTS + 1) * 3];
transferData(&sinVAO,&sinBuffer,&sinColorBuffer, sinValues, sinColorValues);
它不起作用;但是,如果我将函数硬编码为:
glGenVertexArrays(1, &sinVAO);
glBindVertexArray(sinVAO);
glGenBuffers(1, &sinBuffer);
glBindBuffer(GL_ARRAY_BUFFER, sinBuffer);
glBufferData(GL_ARRAY_BUFFER, sizeof(sinValues), vertexValues, GL_STATIC_DRAW);
glGenBuffers(1, &sinColorBuffer);
glBindBuffer(GL_ARRAY_BUFFER, sinColorBuffer);
glBufferData(GL_ARRAY_BUFFER, sizeof(sinColorValues), sinColorValues, GL_STATIC_DRAW);
它起作用了
知道为什么吗
---------------------------------------_-什么是“不工作”的意思?如果不是硬编码,它不会在屏幕上绘制函数