Avatar ·

¿Cómo convertir std::string a char* en C++? Problemas con c_str() y data()

¡Hola a todos! Acabo de empezar a aprender C++ y me encontré con un problema. Necesito pasar el contenido de std::string a una función que solo acepta char* (no const char*). Sé que std::string tiene los métodos c_str() y data(), pero devuelven const char*, y el compilador se queja de que no puedo pasar const a un parámetro no-const. Intenté hacer esto: ```cpp std::string myStr = "Hello, world!"; char* ptr = myStr.c_str(); // Error: no se puede convertir const char* a char* someFunction(ptr); ``` Luego leí que se puede usar const_cast, pero parece peligroso. También vi que alguien copia el string a un array char mediante strcpy. ¿Cuál de estos es correcto? ¿O hay alguna forma estándar de obtener exactamente char* (no const) de std::string? ¡Gracias de antemano por la ayuda! <<>>

Forma correcta: copiar a un buffer separado

El problema es que std::string gestiona su propia memoria interna y no garantiza que puedas modificarla a través de c