如何安全地将C ++字符串传递给Rust?

Guerlando OC

我有这个Rust函数:

pub extern "C" fn do_something(my_string: &str) {
    let s = String::from(my_string);
}

我在C ++上这样调用:

std::string my_string("hello");
do_something(my_string.c_str());

签名:

extern "C" void* do_something(const char*);

String::from在行上得到这个错误

memory allocation of 127963177044160 bytes failedAborted (core dumped)

我想这是因为传递的字符串没有,\n所以它试图使最大大小的字符串成为可能。

如何安全地将std::stringRust传递给Rust?

马斯林

我在C ++上这样调用:

do_something(my_string.c_str());

因此,在C ++方面,您要调用一个以C字符串作为输入的函数(不是std::string,这是一个非常相关的区别)。

这意味着Rust函数应该将C字符串作为输入,但&str绝对不是。

因此do_something应声明为:

pub extern "C" fn do_something(my_string: *const c_char) {

正如Jmb所指出的那样,您可能想要使用它CStr之后才能安全地包装指针。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何安全地传递字符串值?

来自分类Dev

如何安全地传递字符串值?

来自分类Dev

如何安全地将Unicode字符存储在cookie中?

来自分类Dev

安全地将int转换为C中的字符串

来自分类Dev

安全地将int转换为C中的字符串

来自分类Dev

安全地将字符串转换为DateTime

来自分类Dev

将字符串传递给Asyntask

来自分类Dev

将字符串传递给Audio()

来自分类Dev

将字符串传递给函数

来自分类Dev

将字符串传递给函数

来自分类Dev

将等号传递给字符串

来自分类Dev

如何从AngularJS安全地将apiKey /客户端密钥传递给REST API

来自分类Dev

如何在Inno Setup中安全地将证书密码传递给signtool.exe?

来自分类Dev

如何安全地将变量传递给启用了root的脚本?

来自分类Dev

如何将字符数组传递给字符串

来自分类Dev

如何使用C ++中的curses安全地将ascii整数转换回其关联的ascii字符?

来自分类Dev

安全地将Make变量传递给Shell命令

来自分类Dev

安全地将JS变量传递给PHP

来自分类Dev

安全地将参数传递给命令

来自分类Dev

将C#字符串数组传递给C ++

来自分类Dev

如何安全地将包含转义JSON的字符串转换为有效JSON?

来自分类Dev

如何在codeigniter php mysql中的其他函数中安全地将查询作为字符串调用

来自分类Dev

如何将字符串传递给HashSet包含?

来自分类Dev

如何将字符串传递给宏函数

来自分类Dev

如何将字符串传递给工厂

来自分类Dev

如何将字符串参数传递给jQuery

来自分类Dev

如何将字符串从doInBackground传递给onPostExecute

来自分类Dev

如何将字符串数组传递给函数?

来自分类Dev

如何将生成的字符串传递给 EditText?

Related 相关文章

热门标签

归档