Newbie: Problem mit einem Console Prog.
-
Hallo,
ich bin ein ziemlicher Frischling in Bezug auf C++;
hab früher rel. viel Turbo Pascal programmiert, daher grundlegende Ahnung wie man ein Programm zum laufen bekommt, aber mehr nicht.zum Problem:
Ich habe ein Programm geschrieben, dass Daten aus einem Textfile einliest und in ein "record" speichert.
Dies ist das entsprechende struct:
struct Datarecord { int index; string Headerline; short ST_TDM; short DX_TDM; short IQ_TDM; short HT_TDM; short Needstime; short Risk; short Risktable; string Get1; string Get2; string Get3; string Get4; string Get5; string Get6; string Get7; string Get8; string Opens; string Closes; } Datarecord Pathfile[50];Und es soll mit dieser Funktion initialisiert werden
int Clear_Pathrecord_Memory() { int ut=0; while (ut<=50) { Pathfile[ut].index=0; Pathfile[ut].Headerline=""; Pathfile[ut].ST_TDM=0; Pathfile[ut].DX_TDM=0; Pathfile[ut].IQ_TDM=0; Pathfile[ut].HT_TDM=0; Pathfile[ut].Needstime=0; Pathfile[ut].Risk=0; Pathfile[ut].Risktable=0; Pathfile[ut].Get1=""; Pathfile[ut].Get2=""; Pathfile[ut].Get3=""; Pathfile[ut].Get4=""; Pathfile[ut].Get5=""; Pathfile[ut].Get6=""; Pathfile[ut].Get7=""; Pathfile[ut].Get8=""; Pathfile[ut].Opens="none"; Pathfile[ut].Closes="none"; ut++; } }Der compiler (gnu gcc) nimmt den code sang und klanglos an,
aber beim laufen steigt das Programm bei dieser Funktion mit Fehlermeldung aus.Ich vermute rein instinktiv es handelt sich um ein Speicherproblem verursacht durch meinen Krautundrüben - Code, aber sicher bin ich mir dabei nicht.
Vielleicht habt ihr eine Idee? Ich bin relativ ratlos und in der FAQ nicht fündig geworden.
Der Code des gesamten Programms:
http://www.servedhot.net/markus/TRANSFER/main.cpp
-
Servus,
jo, Kraut und Rüben Code triffts scho

In C++ werden, im Gegensatz zu Pascal, Arrays mit 0 beginnend indiziert.
Ein Datarecord Pathfile[50]; enthält Elemente von 0 bis 49.
while (ut<=50) spricht aber auch das Pathfile[50] an, und das gibt es ja nicht mehr. Nimm das = also weg.
Ich denke, wenn du dich mit (Default)-Konstruktoren beschäftigst (Auch Structuren können welche haben, wirst du deinen Code übersichtlicher machen können.
Zumal neu erstellte string Objekte immer leer sind.
(Denn die haben ja schon einen Default-Konstruktor, der sie leer initialisiert).
-
Ah, das ging schnell.
Ein saudummer Fehler, danke- funktioniert jetzt...Und danke auch für den Tip, werd mir das ansehen.