|
Uh. Yes :) I should've tried this first, but thought it might not work. Well, thanks for that one! On 6/13/2012 8:36 PM, Daurnimator wrote:
On 14 June 2012 12:47, Dimiter 'malkia' Stanev<malkia@gmail.com> wrote:How about this workaround (ugly, but still could work): local ffi = require( "ffi" ) ffi.cdef[[ typedef struct vec3 { float x, y, z; } vec3; ]] local a = ffi.new( "vec3[?]", 1024 + 1 ) local b = ffi.cast( "vec3*", ffi.cast("size_t", a) - ffi.sizeof("vec3")) print(a) print(b) for k = 1, 30 do b[k].x = k end for k = 0, 29 do print( a[k].x ) end The trick here is that 'a' has to be kept, so that 'b' would work (not sure, Mike would know better)Why not just use pointer arithmetic? b = a-1 Same rule for keeping a around applies.