Originariamente inviato da Puffolott0

Ho letto tempo fa che è perchè il gets può essere nocivo... Non so bene cosa faccia di male, ma ho letto che è possibile sfruttare una sua debolezza per fare virus..
Il gets ha il problema che non effettua alcun controllo sulla lunghezza dell' array.

Per esempio in questo codice

codice:
#include <stdlib.h>
#include <stdio.h>

void main()
{
	// Solo 10 caratteri (9 effettivi)
	char stringa[10];
	
	gets(stringa);
	
	printf("Hai scritto: %s",stringa);

}
Se scrivo sulla console "Ciao mi chiamo Gino Pino", le dimensioni della stringa superano quelle dell'array e la stringa verrà comunque memorizzata nella memoria successiva all'array, anche se non allocata.

Per quanto riguardi i virus, forse in qualche caso, se nn si sta attenti, potrebbe provocare un crash del sistema o cmq qualche falla... boh :master:

Ma dubito che 1 semplice gets in 1 programma mandi il tuo computer in balia dei cracker...