Hallo Habo,
ich habe gerade folgendes Problem und zwar habe ich 3 Dateien
Die main.c mit folgendem Inhalt
Die Headerdatei mit folgendem Inhalt
und die Datei mit den Funkionen
jetzt kompiliere ich die Datei
main mit gcc -c main.c
die Datei mit den Funktionen mit
gcc -c funktionen.c
und anschließend bastel ich mir mit
gcc -o main main.o funktionen.o eine ausführbare Datei.
Jetzt rufe ich die Datei auf und ich bekomme folgende Fehlermeldung :
Segmentation fault (core dumped).
Was hat das zu bedeuten? Als ich die ganzen Funktionen noch nicht in eigenen Dateien hatte lief alles wunderbar.
Wenn ich allerdings die main.c kompilieren möchte bekomme ich mehrere Warnungen
prak8_3main.c:12: warning: passing argument 1 of 'einlesen' from incompatible pointer type
prak8_3main.c:14: warning: passing argument 1 of 'mittelwert' from incompatible pointer type
prak8_3main.c:17: warning: passing argument 1 of 'biggestfktn' from incompatible pointer type
prak8_3main.c:20: warning: passing argument 1 of 'smallestfktn' from incompatible pointer type
Aber wie gesagt nur Warnungen...
Habe ich irgendwas beim verlinken oder so falsch gemacht oder woher kommt diese Fehlermeldung?
LG,weau
ich habe gerade folgendes Problem und zwar habe ich 3 Dateien
Die main.c mit folgendem Inhalt
Code:
#include <stdio.h>
#include "prak8_3arrayfunctions.h"
int main()
{
char werte[20];
int anz_werte=0,biggest=0, _2smallest=0, kleinste=0;
float erg=0;
static int smallest=0;
/*Werte einlesen */
einlesen(&werte, &anz_werte);
/*mittelwert*/
erg = mittelwert(&werte,anz_werte);
printf("%2.2f\n", erg);
/*biggest ausgeben*/
biggest = biggestfktn(&werte, anz_werte);
printf("%i\n", biggest);
/*smallest ausgeben*/
kleinste = smallestfktn(&werte, anz_werte);
printf("%i\n", kleinste);
/*_2smallest = secondsmallestfktn(&werte, anz_werte);
printf("%i", _2smallest);*/
return 0;
}
Die Headerdatei mit folgendem Inhalt
Code:
int einlesen(char werte[],int *anz_werte);
float mittelwert(char werte[],int anz_werte);
int biggestfktn(char werte[],int anz_werte);
int smallestfktn(char werte[],int anz_werte);
und die Datei mit den Funkionen
Code:
#include <stdio.h>
#include "prak8_3arrayfunctions.h"
int einlesen(char werte[], int *anz_werte)
{
int i=0,t=0;
char input[4];
for(i=0;i<20;i++)
{
printf("Wert:");
scanf("%s", input);
/* Input auf EOF prüfen */
if(0 == strncmp(input, "EOF", 3))
{
*anz_werte = i;
return 0;
}
/*sonst input in int umwandeln und in array schreiben */
werte[i] = atoi(input);
printf("nums[%d] = %d\n", i, werte[i]);
}
}
float mittelwert(char werte[], int anz_werte)
{
int z=0;
float erg=0;
for(z=0;z<anz_werte;z++)
{
erg = erg + werte[z];
}
erg = erg / anz_werte;
return erg;
}
int biggestfktn(char werte[], int anz_werte)
{
int y=0;
int biggest;
biggest = werte[0];
for(y=1;y<anz_werte;y++)
{
if(werte[y] > biggest)
{
biggest = werte[y];
}
}
return biggest;
}
int smallestfktn(char werte[], int anz_werte)
{
int t=0;
int smallest;
smallest = werte[0];
for(t=0;t<anz_werte;t++)
{
if(werte[t] < smallest)
{
smallest = werte[t];
}
}
return smallest;
}
jetzt kompiliere ich die Datei
main mit gcc -c main.c
die Datei mit den Funktionen mit
gcc -c funktionen.c
und anschließend bastel ich mir mit
gcc -o main main.o funktionen.o eine ausführbare Datei.
Jetzt rufe ich die Datei auf und ich bekomme folgende Fehlermeldung :
Segmentation fault (core dumped).
Was hat das zu bedeuten? Als ich die ganzen Funktionen noch nicht in eigenen Dateien hatte lief alles wunderbar.
Wenn ich allerdings die main.c kompilieren möchte bekomme ich mehrere Warnungen
prak8_3main.c:12: warning: passing argument 1 of 'einlesen' from incompatible pointer type
prak8_3main.c:14: warning: passing argument 1 of 'mittelwert' from incompatible pointer type
prak8_3main.c:17: warning: passing argument 1 of 'biggestfktn' from incompatible pointer type
prak8_3main.c:20: warning: passing argument 1 of 'smallestfktn' from incompatible pointer type
Aber wie gesagt nur Warnungen...
Habe ich irgendwas beim verlinken oder so falsch gemacht oder woher kommt diese Fehlermeldung?
LG,weau