Eventually, I can reproduced the issue with guile-next from guix: scheme@(guile-user) [1]> (make-c-struct (list '* '*) (list (string->pointer "hello ") (string->pointer "there!"))) $5 = #<pointer 0x1d1ca70> scheme@(guile-user) [1]> (parse-c-struct $5 (list '* '*)) $6 = (#<pointer 0x166a950> #<pointer 0x166a9f0>) scheme@(guile-user) [1]> (map pointer->string $6) $7 = ("hello " "there!") scheme@(guile-user) [1]> (make-c-struct (list '* '*) (list (string->pointer "hello") (string->pointer "there!"))) $8 = #<pointer 0x1ce2a40> scheme@(guile-user) [1]> (parse-c-struct $8 (list '* '*)) $9 = (#<pointer 0x166a810> #<pointer 0x166a910>) scheme@(guile-user) [1]> (map pointer->string $9) $10 = ("hello" "there!") scheme@(guile-user) [1]> (make-c-struct (list '* '*) (list (string->pointer "hello") (string->pointer "there!"))) $11 = #<pointer 0x1ce2a10> scheme@(guile-user) [1]> (parse-c-struct $11 (list '* '*)) $12 = (#<pointer 0x166a850> #<pointer 0x166a690>) scheme@(guile-user) [1]> (map pointer->string $12) $13 = ("?<\"?\x0e\x7f" "@?f\x01") scheme@(guile-user) [1]> scheme@(guile-user)>
Le mar. 26 mars 2019 à 14:19, David Pirotte <da...@altosw.be> a écrit : > Hello, > > guile 2.2.4.1-cdb19 > > ,use (system foreign) > > ;; this fails > > scheme@(guile-user)> (make-c-struct (list '* '*) (list (string->pointer > "hello ") (string->pointer "there!"))) > $16 = #<pointer 0x55a3d54d54d0> > scheme@(guile-user)> (parse-c-struct $16 (list '* '*)) > $17 = (#<pointer 0x55a3d5d12170> #<pointer 0x55a3d5d0a640>) > scheme@(guile-user)> (map pointer->string $17) > $18 = ("?g?գU" "`!?գU") > > ;; but this works > > scheme@(guile-user)> (map pointer->string (parse-c-struct (make-c-struct > (list '* '*) (list (string->pointer "hello ") (string->pointer "there!"))) > (list '* '*))) > $19 = ("hello " "there!") > > > David >