erste versuche mir struct
-
Hallo zusammen!
ich hab im moment ein kleines Problem mit meinem Programm und hoffe ihr könnt mir helfen...
typedef struct EinProdukt { int id; char bezeichnung[128]; double preis; int anzahl; double gesamt; }produkt; produkt meineProdukte[100]; zaehler1++; meineProdukte[zaehler1].id = zaehler1; scanf("%s",meineProdukte[zaehler1].bezeichnung); scanf("%d",meineProdukte[zaehler1].preis); scanf("%d",meineProdukte[zaehler1].anzahl); meineProdukte[zaehler1].gesamt = meineProdukte[zaehler1].anzahl * meineProdukte[zaehler1].preis;
Compilieren funktioniert und nachdem ich preis eingebe z.b 1.22, dann
"Segmentation fault (core dumped)"Hoffe mir kann einer Helfen.
hab erst gedacht liegt daran das ich kein double benutzen darf aber mit int kommt an der gleichen Stelle die Fehlermeldung.
-
port45 schrieb:
Compilieren funktioniert und nachdem ich preis eingebe z.b 1.22, dann
"Segmentation fault (core dumped)"Das Programm erwartest als Input int und du gibst double ein. Ausserdem erwartet scanf einen Zeiger auf die Variable. Versuchs mal mit
scanf("%lf", &meineProdukte[zaehler1].preis); scanf("%d", &meineProdukte[zaehler1].anzahl);
Poste das nächte Mal ein kompilierbares und ausführbares Beispiel.
-
port45 schrieb:
Compilieren funktioniert
Der Compiler gibt nicht nur Fehlermeldungen aus, sondern auch Warnungen.
Während bei Fehlern die Übersetzung abgebrochen wird, macht der Compiler bei Warnungen weiter, denn der Programmierer wird schon wissen was er tut.port45 schrieb:
... dann "Segmentation fault (core dumped)"
Oder er weiss es nicht.
Behandle die Warnungen wie Fehler und beseitige die Ursache dafür.
Du kannst den Warnlevel auch verändern
-
Was für einen Startwert hat denn zaehler1?