Ciao a tutti.
char *s;
printf("Inserire Stringa: ");
scanf("%s", .... );
Dato questo codice, come faccio a dare a s il valore inserito da tastiera?
Grazie
Ciao a tutti.
char *s;
printf("Inserire Stringa: ");
scanf("%s", .... );
Dato questo codice, come faccio a dare a s il valore inserito da tastiera?
Grazie
esiste una grande differenza tra gli operatori * e &, ad ogni modo devi usare scanf("%s", &s)
Prima di tutto devi allocare lo spazio sufficiente all'input in questo modo
s = (char *)malloc(200*sizeof(char));
e poi utilizzi il puntatore
printf("Inserire Stringa: ");
scanf("%s", s);
P.S. Attenzione X-sPiKe_iT ... s e' gia' un puntatore ...
O al massimo definisci prima un vettore di tot elementi
#define size 100
int main()
{
int vettore[size];
int *s = vettore ;
// e solo ora puoi fare
printf("Inserire Stringa: ");
scanf("%s", s);
}
questa istruzione
s = (char *)malloc(200*sizeof(char));
equivale ad una dichiarazione del tipo:
char s[200];
???
Quale sarebbe meglio usare? Che differenze ci sono?
Con la scritta
char s[200];
allochi staticamente lo spazio per la stringa, con la malloc, allochi lo spazio dinamicamente.
Non c'e' una versione migliore o peggiore. Sono due modi di fare la stessa cosa e dipende da tante altre cose nel programma se scegliere la prima o la seconda forma ...
E se lo chiedi, vuol dire che ti mancano ancora molti concetti di base del linguaggio. Ti consiglio di affrontare le differenze tra le due scritture solamente quando avrai acquisito tali concetti.
@P4nico ... l'array deve essere di char e non di int ... e il puntatore e' inutile ...
codice:#define SIZE 100 int main() { char s[SIZE]; printf("Inserire Stringa: "); scanf("%s", s); return 0; }
Il che però significa che non esiste altro modo che dare una dimensione anche se dinamica ad un puntatore oltre alla malloc?Originariamente inviato da oregon
@P4nico ... l'array deve essere di char e non di int ... e il puntatore e' inutile ...
codice:#define SIZE 100 int main() { char s[SIZE]; printf("Inserire Stringa: "); scanf("%s", s); return 0; }
Non ho capito cosa vuoi dire ...Originariamente inviato da P4nico
Il che però significa che non esiste altro modo che dare una dimensione anche se dinamica ad un puntatore oltre alla malloc?
Tu prima hai dato una dimensione al puntatore usando la funzione di malloc o sbaglio? perchè dopo quando l'hai spiegata ho capito questo.
E volevo sapere se quello era l'unico modo per dare 1 dimensione ad 1 puntatore.