Hallo,
mit n_max = 100 erhälst Du Array im Bereich von 0-99 (nicht etwa bis 100), damit sind die gültigen Bereiche für gew[0..99], absc[0.99]. n_max wird als Parameter an gauleg übergeben und dort in einer Schleife verwendet:
gauleg( xu, xo, absc, gew, n_max); // n_max=100
in gauleg verwendest Du folgende Zuweisungen:
x[n+1-i]=xm+xl*z;
w[n+1-i]=w;
Für den ersten Schleifendurchlauf (also mit i=1, und n=100), erhälst Du als Index 100:
n+1-i = 100+1-1 und greifst auf x[100] bzw. w[100] und damit auf nicht reservierten Speicher zu.
Nic