Errore di segmentazione ciclo for

di il
2 risposte

Errore di segmentazione ciclo for

Ciao a tutti. Ho un problema apparentemente banale ma non riesco a venirne a capo. Devo prendere da un file di testo 100000 dati per 3 colonne. Molto semplicemente li voglio leggere con un ciclo for per memorizzarli in una matrice per lavorarci inseguito. Ma se la N della matrice è più grande di 43000 e rotti mi da errore di segmentazione, sotto a quel numero no. Di seguito il codice


#include <stdlib.h>
#include <stdio.h>
#include <math.h>

#define N 100000
#define L 3
int main () {
FILE *fp, *ff;
int  i, o;
long double D0[N][L];
fp = fopen("data1.txt", "r");

for (i=0; i<N; i++) {
	for (o=0; o<3; o++) {
		fscanf(fp, "%Lf", &D0[i][o]);
		
	}
}
fclose(fp);}

2 Risposte

  • Re: Errore di segmentazione ciclo for

    In questo modo esaurisci lo spazio disponibile sullo stack. O indichi al compilatore/linker di usare più spazio per lo stack, o sposti la linea

    long double D0[N][L];

    prima del main.

    Come ultima scelta, puoi ricorrere all'allocazione dinamica dell'array.
  • Re: Errore di segmentazione ciclo for

    Chiarissimo, ho spostato long double D0[N][L]; prima del main e ora va come un treno. Grazie
Devi accedere o registrarti per scrivere nel forum
2 risposte