Segmentation Fault
-
In diesem Programmabschnitt bekomme ich immer einen Segmentation Fault, klammere ich diese Zeile aus kommt er nicht:
strncpy(str2,name[groups[i][0]],8);
Das Programm soll aus einem Array, in dem Namen mehrfach vorkommen können diese zusammenfassen und zählen.
Bsp:ar[0]=bernd;
ar[1]=alex;
ar[2]=bernd;
Ausgabe:
alex 1
bernd 2Das Kuriose an der Sache ist es ging bereits und ich hab keine Ahnung warum es jetzt auf einmal nicht mehr geht und wieso ich da nen Segmentation Fault bekomme.
Vllt. sieht ja jem den Fehler.
Gruß HiFishif(group==1) { int groups[100][2]; int i=0,l=0; char str2[9]; char str[9]; groups[0][0]=0; while(cnt>x) { strncpy(str,name[x],8); //Name aus org Array holen while(i<100) { if(groups[i][0]!=0) { strncpy(str2,name[groups[i][0]],8); //Bereits vorhandene Namen rausholen und if(strstr(str,str2)!=0) //Überprüfen ob es den Namen schon gibt { groups[i][1]++; //wenn ja die Anzahl erhöhen i=200; } } i++; } if(i==100) //wurde kein Name gefunden { groups[l][0]=x; //neuen Eintrag anlegen l++; } i=0; x++; } for(i=0;i<l;i++) { strncpy(str,name[groups[i][0]],8); k=groups[i][1]+1; printf("%s:",str); printf("%d Jobs\n",k); } }
-
Wie ist denn name definiert? Und kannst du mal im Debugger nachschauen, woher du deine Daten holen willst.
(ich tippe persönlich auf Probleme wegen nicht-initialisierter Variablen, besonders groups enthält am Anfang willkürliche Werte)
-
Ja an dem Groups lag es, ich definiere es jetzt mit:
for(i=0;i<100;i++) { groups[i][1]=0; groups[i][0]=0; }
gibt es da auch einen einfacheren Weg?
Aber danke schonmal für die Hilfe,
Gruß HiFish
-
Ja, Initialisierungsliste:
int groups[100][2]={0};