Witam! Chcę stworzyć program, który będzie czytał liczby z pliku z liczbami losowymi podanego przy wywołaniu programu i obliczał ich średnią arytmetyczną. W obecnej formie programu, przy próbie wywołania go z jakimkolwiek plikiem liczb losowych, otrzymuję komunikat "Naruszenie ochrony pamięci (zrzut pamięci)". Chciałbym dowiedzieć się, gdzie odwołuję się do pamięci, do której nie mam dostępu?
Kod:
#include <stdio.h>
#include <math.h>
int
main(int argc, char *argv[])
{
FILE *in = argc > 1 ? fopen(argv[1], "r") : stdin;
if (in != NULL) {
double r[10000000];
double sum=r[0];
int n = 1;
while (fscanf(in, "%lf", &r[n]) == 1) {
sum+=r[n];
n++;
}
fclose(in);
printf("\twartosc srednia = %g\n", sum/n);
return 0;
} else
return 1;
}