PDA

Visualizza la versione completa : [C] metodo che ritorna un stinga


keykode20
10-06-2012, 23:17
Ciao ho un piccolo problema ho cercato nel forum ma non ho mai trovato una soluzione o un esempio adeguato al mio caso
ho definito un array di char chiamato string e ho creato un semplice metodo cosi definito


string setString(){
string s;
scanf("%s",s);
return s; <---- errore
}


come faccio il ritorno di una stringa?
ho provato a far tornare il puntatore ad un carattere... ma mi da sempre errore
qualcuno mi pu˛ dare una mano?

oregon
11-06-2012, 00:00
Devi allocare la stringa dinamicamente all'interno della funzione e restituire il valore del puntatore.

keykode20
11-06-2012, 00:11
perdonami non ho praticitÓ con i termini...non ho capito

oregon
11-06-2012, 00:22
Utilizza un puntatore e alloca dinamicamente la memoria con la malloc ...

infinitejustice
11-06-2012, 01:23
Originariamente inviato da keykode20
perdonami non ho praticitÓ con i termini...non ho capito
Significa che di default, la macchina alloca memoria per la tua stringa dentro lo stack e la cancella quando la funzione finisce. Per far si che rimanga in memoria devi allocarlo tu esplicitamente nell'heap tramite una chiamata a malloc(), che ti restituira un puntatore a quell'area di memoria.

MItaly
11-06-2012, 01:24
L'alternativa classica Ŕ farsi passare dal chiamante il buffer in cui scrivere e le sue dimensioni e scrivere lý dentro.

Loading