Avatar ·

Cómo convertir una cadena C (char*) a Rust String y viceversa a través de FFI

¡Hola a todos! Estoy escribiendo un pequeño programa en Rust que usa una biblioteca en C a través de FFI. Me encontré con el problema de convertir cadenas entre C y Rust. Tengo una función en C que devuelve `char*`: ```c // C code char* get_greeting(void) { return "Hello from C!"; } ``` Y otra función en C que toma `const char*`: ```c void print_message(const char* msg); ``` Estoy intentando llamarlas desde Rust: ```rust extern "C" { fn get_greeting() -> *const c_char; fn print_message(msg: *const c_char); } fn main() { unsafe { // Obtenemos la cadena C let c_str = get_greeting(); // ¿Cómo convertir *const c_char a Rust String? // Intentamos pasar una cadena Rust a C let rust_string = String::from("Hello from Rust!"); // ¿Cómo convertir String a *const c_char? print_message(???); } } ``` Entiendo que las cadenas C son secuencias de bytes terminadas en nulo, mientras que Ru