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);
它起作用了

知道为什么吗


---------------------------------------_-

什么是“不工作”的意思?如果不是硬编码,它不会在屏幕上绘制函数