"Une violation d'accès (erreur de segmentation) est apparue..."
Typically Win32
En fait le probleme est que probablement tu as essayer d'acceder a une adresse a l'exeterieur d'un de tes tableaux.
occurences[nombre_pas+deplacement] est offset ?
En regardant ton code je suis vraiment pas certaint que tout test access a occurences se font a l'interieur de int occurences[2*nombre_pas(100)+1];
Habituellement une bonne seance en mode debug avec le debugger vas pouvoir detecter cette erreur.
Aussi ca simplifirais beaucoup simplifier ton code si tu utilise :
/* initialiser occurences=0 */
for (i =0; i < nombre_pas ; i++) occurences[i]=0;
au lieu de
/* initialiser occurences=0 */
for (i = -nombre_pas; i < nombre_pas ; i++) occurences[i+nombre_pas]=0;
Mais la vrai ligne qui fait planter ton code est:
for (e=0;e < nombre_essais;e++)
occurences[nombre_pas+deplacement]= occurences[nombre_pas+deplacement]+1;
Puisque deplacement n'est jamais initialiser.
En mode debug par default deplacement vas probablement etre egale a 0 mais pas en mode release. Il garde une valeur radom de la memoire ( possiblement beaucoup plus grande que 1).
Pourquoi ne pas remplacer:
for (e=0;e < nombre_essais;e++)
occurences[nombre_pas+deplacement]= occurences[nombre_pas+deplacement]+1;
par
occurences[nombre_pas+deplacement]+= nombre_essais;
? ( et ne pas oublier d'initialiser depacement )