我正在尝试设置结构体 char* 的值。这是一个基本示例:
$ffi = FFI::cdef('typedef struct
{
const char *name;
} example_t;');
$struct = $ffi->new('example_t');
$struct->name = 'Test';
// FFI\Exception: Incompatible types when assigning to type 'char*' from PHP 'string'
我遇到了一个例外:FFI\Exception: Incompatible types when assigning to type 'char*' from PHP 'string'
我的问题是:如何设置结构体的 char *name ?
我的肮脏方法是创建一个字符数组,str_split字符串并将字符数组的键设置为分割的字符。
FFI::arrayType(FFI::type('char'), [$length]);
但通过这种方法,我遇到了空终止字符串的问题,并且也不知道如何解决它。
PS:我只有基本的C知识。
胡子哥哥