01: // uso di fgets() per evitare buffer overrun
02: #include<stdio.h>
03: #include<stdlib.h>
04: 
05: int main(int argc, char **argv){
06: 
07:   char mystring[11];
08: 
09:   printf("Inserisci una frase di massimo 10 caratteri: ");
10:   scanf("%[^\n]", mystring);
11:   printf("Hai inserito [%s]\n", mystring);
12: 
13:   getchar(); // remove the \n
14: 
15:   // la scanf() legge da tastiera fino al primo \n, non conosce la dimensione dell'array di destinazione
16:   // quindi se l'utente inserisce piu' di 10 caratteri -> buffer overrun
17: 
18:   // grazie alla fgets() posso scrivere il codice precedente in modo che sia a prova di errore
19:   printf("Inserisci una frase di massimo 10 caratteri: ");
20:   fgets(mystring, 11, stdin);
21:   printf("Hai inserito [%s]\n", mystring);
22: 
23:   
24:   return 0;
25: }
26: 
27: 


Se avete commenti o osservaƶioni su questa pagina
mandate un messaggio di posta elettronica a bertoƶƶi@ce.unipr.it