c'è un modo per fare una funzione che restituisce una stringa ?
tipo la String di java?
va bene anche una soluzione differente.
dovrei usare char[] ?
c'è un modo per fare una funzione che restituisce una stringa ?
tipo la String di java?
va bene anche una soluzione differente.
dovrei usare char[] ?
Restituire una stringa di C o C++ ?
in C++, scusa non l'avevo scritto
Beh ... allora qualcosa come
codice:#include <string> using namespace std; string func() { string s; s = "ciao"; return s; }
Ecco una possibilità attuabile solo se si copia la stringa in un altro buffer prima di richiamare un'altra volta la funzione:
.codice:const char * funzione() { static char buffer[255]; //... return buffer; }
Altra possibilità (ma bisogna sempre ricordarsi di liberare il buffer con delete [] nella funzione chiamante quando la stringa non serve più):
.codice:char * funzione() { char * buffer = new char[255]; //... return buffer; }
Amaro C++, il gusto pieno dell'undefined behavior.
devo liberare il buffer in entrambi i casi, o solo nel secondo ?
grazie
Quelle sono stringhe classiche del C ...
Solo nel secondo (usando delete []), ma tieni conto che la soluzione proposta da oregon è molto più comoda da usare.
Amaro C++, il gusto pieno dell'undefined behavior.
ok, grazie a tutti!
Scusate cmq potreste anche utilizzare la classe String di boost.... non credete?
Punto! Il magazine carta & web
La mia rubrica su informatica e linux
Il mio nuovo blog di goodNews ed eventi