【发布时间】:2020-06-30 14:35:28
【问题描述】:
我正在尝试设置结构的 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字符串并将char数组的键设置为分割字符。
FFI::arrayType(FFI::type('char'), [$length]);
但是使用这种方法,我遇到了空终止字符串的问题,也不知道如何解决它。
P.S.:我只有基本的 C 知识。
【问题讨论】: