У меня есть эта функция 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::string
Rust?