Segmentation fault (core dumped)
Ich bin relativ neu auf C, ich versuche, führen Sie ein einfaches Programm und ich bekomme diese Fehlermeldung: Segmentation fault (core dumped) ich will einfach nur drucken Sie jede Wert des array-bits, aber ich kann nicht, ich würde schätzen jede Hilfe zu diesem Fehler.
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <malloc.h>
int main()
{
const long int N = 1000000000;
const int smallN = 125000000;
char bits[smallN];
for(int i=0; i<smallN; i++){
bits[i]=0xff;
}
printf("character = %c \n", bits[5]);
}
Du musst angemeldet sein, um einen Kommentar abzugeben.
Array zu sein scheint überschreitung der stack-Größe (bits wird ein array auf dem stack). Sie können entweder versuchen, indem es Globale oder die Zuweisung der array mit malloc.
Beachten Sie, dass dies ist die Art von Sache, die Valgrind ist gut lokalisiert für Sie. Wenn Sie dies getan hatte, in einem großen Stück code, Valgrind würde, zeigen Sie auf die Zeile, die falsch war.
Für das lernen C in diesem Tag und Alter, Valgrind es unverzichtbar.