[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Rust



Il 03/06/2015 14:24, Gian Uberto Lauri ha scritto:
> onetmt writes:
>  > > 1) il compilatore tiene traccia della "vita" dei dati e in fase di
>  > > compilazione da errori se fai qualcosa di inconsistente (tipo usare
>  > > della memoria dopo averla liberata).
>  > 
>  > E quindi niente piu' SIGSEV? E che gusto c'e' :D
> 
> (mapcar
> 	(lambda (a)
> 	  (fai-qualcosa-su a))
> 	  lista))
> 
> Sinceramente in C semplice e C++ non hai molte possibilità per farlo.

Non e' difficile; basta dimenticare un malloc:

$ cat sigsev.c
#include <stdio.h>
#include <malloc.h>

int main(int argc, char* argv[])
{
	int *iar;
	int i;

	for (i = 0; i < 3; i ++)
	{
		iar[i] = i;
		printf("%f\n", iar[i]);
	}
	free(iar);

	return 0;
}
$ ./sigsev
Errore di segmentazione

> 
> E comunque, mi spiace per te che non hai mai visto i SIGBUS...
> 


-- 
Hofstadter's Law:
"It always takes longer than you expect, even when you take into account
Hofstadter's Law."


Reply to: