Avatar ·

How to convert C-string (char*) to Rust String and back via FFI?

Hi everyone! I'm writing a small program in Rust that uses a C library via FFI. I've encountered a problem with converting strings between C and Rust.\n\nI have a C function that returns `char*`:\n\n```c\n// C code\nchar* get_greeting(void) {\n return "Hello from C!";\n}\n```\n\nAnd another C function that takes `const char*`:\n\n```c\nvoid print_message(const char* msg);\n```\n\nI'm trying to call them from Rust:\n\n```rust\nextern "C" {\n fn get_greeting() -> *const c_char;\n fn print_message(msg: *const c_char);\n}\n\nfn main() {\n unsafe {\n // Get C-string\n let c_str = get_greeting();\n // How to convert *const c_char to Rust String?\n \n // Trying to pass Rust string to C\n let rust_string = String::from("Hel