Se si passa un char * in una funzione. Voglio quindi prendere quel char * convertirlo in uno std :: string e una volta ottenuto il risultato converti nuovamente in char * da una stringa: std :: per mostrare il risultato.come copiare char * in una stringa e viceversa
- non so come fare per la conversione (non sto parlando const char *, ma solo char *)
- Non sono sicuro di come manipolare il valore del puntatore mando in.
così passi ho bisogno di fare
- prendere in un char *
- convertirlo in una stringa.
- prendere il risultato di tale stringa e riportarlo sotto forma di char *
- restituire il risultato in modo che il valore sia disponibile all'esterno della funzione e non venga distrutto.
Se possibile Posso vedere come potrebbe essere fatto tramite riferimento vs un puntatore (il cui indirizzo passo in termini di valore comunque posso comunque modificare il valore che puntatore sta puntando. Così, anche se la copia del puntatore indirizzo nella funzione viene distrutta continuo a vedere il valore modificato esterno
grazie
"convertirlo di nuovo in char * da una stringa di std :: per mostrare il risultato." - Perché non puoi mostrare il risultato quando si tratta di una stringa? Dovrebbe essere in grado di fare std :: cout << my_string; –
questa è un'interfaccia con cui devo lavorare. quindi sebbene io usi la stringa ogni volta che posso, se un'interfaccia richiede char *, questo è ciò che devo usare. il parametro di output della funzione è un char * ... ed è quello che devo lavorare con – user295030
In questo caso, l'interfaccia dovrebbe dire qualcosa sulla gestione della memoria. Dico "dovrebbe" perché * potrebbe * non - alcune interfacce sono specificate male, fatto della vita. Ogni volta che si restituisce un puntatore da una funzione, è necessario indicare chi è responsabile dell'assegnazione dei dati puntati, per quanto tempo rimane valido e chi è responsabile della sua liberazione (se applicabile). Se riesci a risolverlo, puoi capire come restituire un valore puntatore appropriato. –