--- title: cdata - Valores de C y FFI summary: Valores de LuaJIT para punteros, estructuras y números de C. ffi.string copia una cadena de C a una cadena de Lua; ffi.cast cambia la vista del tipo sin demostrar que la dirección sea válida. Comprueba por separado la vida útil de la memoria. section: reference kind: guide status: reference updated: 2026-10-26 tags: ["API","X4"] sources: ["https://wiki.egosoft.com/X4%20Foundations%20Wiki/Modding%20Support/","https://www.lua.org/manual/5.1/manual.html","https://luajit.org/ext_ffi_api.html"] --- ## Significado Valores de LuaJIT para punteros, estructuras y números de C. ffi.string copia una cadena de C a una cadena de Lua; ffi.cast cambia la vista del tipo sin demostrar que la dirección sea válida. Comprueba por separado la vida útil de la memoria. ## Ejemplo ```lua local ffi = require("ffi") local value = ffi.new("uint64_t", 42) local kind = type(value) -- cdata local bytes = ffi.sizeof(value) ``` **Qué ocurre:** valor es uint64_t que contiene 42; tipo = "cdata"; bytes = 8. Este fragmento no imprime ni escribe un mensaje de registro. Los valores mostrados son los resultados esperados del ejemplo. ## Métodos y llamadas relacionadas | Función | Devuelve | Finalidad | | --- | --- | --- | | [ffi.cast](wiki:api-standard-ffi-cast-ae33ac09) | [`cdata`](wiki:type-cdata) | Crea cdata scalar por un molde tipo C. El casting no valida una dirección de memoria. | | [ffi.cdef](wiki:api-standard-ffi-cdef-a564999c) | [`none`](wiki:type-results) | Declara los tipos y firmas C para FFI; no carga una biblioteca ni implementa una función. | | [ffi.copy](wiki:api-standard-ffi-copy-aa0e2705) | [`none`](wiki:type-results) | Copia bytes en un buffer asignado. Omitir longitud requiere una cadena Lua y también copia su cero-cestor. | | [ffi.new](wiki:api-standard-ffi-new-86273c2d) | [`cdata`](wiki:type-cdata) | Alocates e inicializa cdata. Se requiere un argumento de tamaño para arrays o structs de longitud variable. | | [ffi.sizeof](wiki:api-standard-ffi-sizeof-18d93d2f) | [`number`](wiki:type-number) \| [`nil`](wiki:type-nil) | Devuelve el tamaño del byte de un tipo C o cdata; un tamaño desconocido puede producir nil. | | [ffi.string](wiki:api-standard-ffi-string-4edf893f) | [`string`](wiki:type-string) | Copia datos de un puntero C en una cadena Lua; sin una longitud se lee al ceroTector. |