¿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