Si paso una char * en una función. Quiero entonces tomar ese char * convertirlo a std :: string y una vez que obtengo mi resultado convertirlo de nuevo a char * desde std :: string para mostrar el resultado.cómo copiar char * en una cadena y viceversa
- No sé cómo hacer esto para la conversión (no estoy hablando const char *, pero sólo char *)
- No estoy seguro de cómo manipular el valor del puntero que envío en.
así los pasos que tengo que hacer
- toma en un char *
- convertirlo en una cadena.
- tome el resultado de esa cadena y vuelva a colocarla en forma de un carácter *
- devuelva el resultado de manera que el valor esté disponible fuera de la función y no se destruya.
Si es posible, puedo ver cómo se puede hacer a través de la referencia contra un puntero (cuya dirección paso por valor pero puedo modificar el valor al que apunta el puntero) aunque la copia del puntero dirección en la función se destruye todavía veo el valor cambiado fuera
gracias
"conviértalo de nuevo a char * desde std :: string para mostrar el resultado". - ¿Por qué no puedes mostrar el resultado cuando es una cadena? Debería poder hacer std :: cout << my_string; –
esta es una interfaz con la que tengo que trabajar. entonces, aunque uso string siempre que puedo si una interfaz requiere char *, eso es lo que tengo que usar. el parámetro de salida de función es un char * ... y eso es con lo que tengo que trabajar con – user295030
En ese caso, la interfaz debería decir algo acerca de la gestión de memoria. Digo "debería" porque * podría * no - algunas interfaces están mal especificadas, hecho de la vida. Siempre que devuelva un puntero desde una función, debe indicar quién es responsable de asignar los datos que se indican, cuánto tiempo permanece válido y quién es responsable de liberarlo (si corresponde). Si puede resolverlo, puede averiguar cómo devolver un valor de puntero apropiado. –