Seite 1 von 1

core dump

Verfasst: Di Apr 16, 2013 8:38 pm
von hardcoding
Hallo,

Ich habe mich anscheinend zu sehr an C++ gewoehnt,sodass ich bei C mit den Scanfs gar nicht mehr durchblicke. :(

Er gibt als Meldung:

segmentation fault(core dump)

Ich greife auf ein geschuetzten Speicherbereich. Wie soll ich das aber mit den Scanfs beheben?


Code: Alles auswählen

#include<stdio.h>

struct gleit
{

    float glei1,glei2;

};

main()
{

    struct gleit *berechnen;

    scanf("%e",&berechnen->glei1);
    fflush(stdin);
    scanf("%e",&berechnen->glei2);
    fflush(stdin);
 
    printf("Erste Gleitpunktzahl ist: %e",berechnen->glei1);
    printf("Zweite Gleitpunktzahl ist: %e",berechnen->glei2);
 
    return 0;
 
}
 
Danke im voraus

Re: core dump

Verfasst: Di Apr 16, 2013 10:23 pm
von hardcoding
Hat sich erledigt. :)

Re: core dump

Verfasst: Di Apr 16, 2013 10:25 pm
von cloidnerux
Woran lags?

Re: core dump

Verfasst: Di Apr 16, 2013 10:26 pm
von nufan
hardcoding hat geschrieben:Hat sich erledigt. :)
Eine Erklärung wäre nett, falls jemand das gleiche Problem hat :)
Ideal wäre noch der korrekte Code, in dem ein malloc() vorkommt ;)

Re: core dump

Verfasst: Di Apr 16, 2013 10:28 pm
von hardcoding

Code: Alles auswählen

struct gleit *berechnen;
Das problem lag beim Pointer.

Re: core dump

Verfasst: Mi Apr 17, 2013 7:54 am
von Xin
hardcoding hat geschrieben:Das problem lag beim Pointer.
Nein, das Problem lag daran, dass der Pointer nicht initialisiert wurde. ^^

Deine Aussage klingt so, als wären Pointer böse. Meine Aussage ist, dass das Problem 60cm vor dem Bildschirm sitzt. ;-D
Aber gut, dass Du die Lösung selbst gefunden hast. :-)

Re: core dump

Verfasst: Mi Apr 17, 2013 9:31 am
von hardcoding
Ja die Antwort ist zu kurz. So sieht es jetzt aus:

Code: Alles auswählen

struct gleit *berechnen;

berechnen = (struct gleit *)malloc(sizeof(struct gleit));

if(berechnen == NULL) {
  return -1;
} else {



  free(berechnen);
}