¿Cómo puedo crear un puntero a datos existentes usando el LuaJIT FFI?

Sé que hay ejemplos de creación de punteros utilizando el LuaJIT FFI, pero la mayoría de estos no apuntan a datos existentes. Un ejemplo de esto está aquí:¿Cómo pasar un puntero a LuaJIT ffi para usarlo como argumento?

Una cosa que no he podido hacer con éxito es crear un puntero a un valor existente. Para tener un tipo de puntero hasta donde yo sé, debo saber que quiero tener un puntero apuntando a él en algún momento en el futuro, como en:

local vao = ffi.new("GLuint[1]")
gl.GenVertexArrays(1, vao)
gl.BindVertexArray(vao[0])

Aquí, sé que glGenVertexArrays necesita un puntero paravao, así que lo especifico como un GLuint [1]. En C, estaría haciendo algo como lo siguiente:

GLuint vao;
glGenVertexArrays(1, &vao);
glBindVertexArray(vao);

Aquí, no tengo idea de que necesitaré un puntero paravao, así que puedo especificarlo normalmente.

En otras palabras, ¿hay alguna manera de obtener la dirección o crear un puntero a un valor existente? ¿Tengo que prever qué haré con el valor antes de crearlo?

¡Gracias!

Respuestas a la pregunta(3)

Su respuesta a la pregunta