lua-users home
lua-l archive

[Date Prev][Date Next][Thread Prev][Thread Next] [Date Index] [Thread Index]

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<>  wrote:
How about this workaround (ugly, but still could work):

local ffi = require( "ffi" )

   typedef struct vec3 {
     float x, y, z;
   } vec3;

local a = "vec3[?]", 1024 + 1 )
local b = ffi.cast( "vec3*", ffi.cast("size_t", a) - ffi.sizeof("vec3"))


for k = 1, 30 do
   b[k].x = k

for k = 0, 29 do
   print( a[k].x )

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.