Las causas comunes como obtendremos esto son:
* Tratando de escribir a un puntero NULL
char *foo = NULL;
strcpy(foo, "bang!");
* Usando un puntero no inicializado
char *foo;
strcpy(foo, "bang!");
* Accesar mas alla de los limites de un arreglo int bar[20]; bar[27] = 6;
* Tratando de almacenar algo sobre memoria de solo lectura char *foo = "My string"; strcpy(foo, "bang!");
* Y por ultimo utilizando de manera tonta free y malloc char bar[80]; free(bar); o char *foo = malloc(27); free(foo); free(foo);
