Fehler bei sumR = new float[1450];
-
Hallo zusammen,
die ZeilesumR = new float[1450];
ergibt bei mir einen Laufzeitfehler:
Unbehandelte Ausnahme bei 0x77e9bcb1 in Cpp.exe: Microsoft C++ exception: std::bad_alloc @ 0x186ef990.
(Deklaration als Instanzvariable float*, die dynamische Erzeugung ist nötig, da kommt demnächst ne Variable rein!)
Ich hab die Zeile mal weiter nach oben in der Methode verschoben, da gehts. Da, wo sie hinsoll, nicht.
Die Syntax ist doch wohl korrekt? Wonach muß ich gucken???Danke,
Uwe
-
std::bad_alloc bedeutet doch soweit ich weiß, dass es einen Fehler beim reservieren des Speichers gab.
Ich würde mal schätzen, dass nicht genug Speicher beschafft werden kann.
-
ich hab jetzt mal in einer anderen Klasse was geändert, dort hatte ich
...new float(xxx) mit runden statt eckigen Klammern geschrieben, jetzt ist dieser Fehler verschwunden. Dafür geht jetzt cout nicht mehr!!! Auch nach endl und flush! Ich glaube, ich habe ein Problem - oder zwei? Kann das zusammenhängen?
Uwe
-
Die runden Klammern bedeuten was total anderes als die eckigen...
Und solche Fehlerbeschreibungen wie "Dafür geht jetzt cout nicht mehr!!!" helfen garnichts... Am besten solltest du ein Stückchen Code zusammen mit einer genauen Fehlerbeschreibung posten.
@Forum: Gibt es hier irgendwo nicht sowas wie "Wie stelle ich Fragen richtig?"?
-
Hallo The Kenney,
Mein Problem ist: ich habe da mehrere tausend Zeilen code. Ich habe keine Ahnung, welche davon relevant ist für meine Probleme. cout habe ich jedenfalls nicht selbst implementiert, garantiert auch nicht überschrieben. Aber du hast Recht: "cout tut nicht" hilft nicht. Diese codezeile aber wohl auch nicht:
cout << "countRadar: " << countRadar << endl;
der Text wird noch ausgegeben, der int nicht mehr. Wenn ich da wüßte, wie ich fragen muß, hätte ich das wahrscheinlich auch schon selbst gelöst.Grüße,
Uwe
-
Da hilft es dann wahrscheinlich nur, das Problem weiter einzukreisen... Was erwartest du? Was kommt dann wirklich? Was tust du damit deine die Ausgabe so aussehen soll, wie du es erwartest?
-
uwehag schrieb:
Hallo zusammen,
die ZeilesumR = new float[1450];
ergibt bei mir einen Laufzeitfehler:
uwehag schrieb:
ich hab jetzt mal in einer anderen Klasse was geändert, dort hatte ich
...new float(xxx) mit runden suwehag schrieb:
cout << "countRadar: " << countRadar << endl;
der Text wird noch ausgegeben, der int nicht mehr.zuerst sprichst du von deinem problem mit 'new float' dann auf einmal von nem 'int'.
hat sich das erste problem schon erledigt ?zeig doch einfach mal bissl code. wirst ja hoffendlich nicht deine tausende zeilen code in der main stehen haben.
zeig doch mal die funktion wo das problem auftritt.Meep Meep
-
Zeig doch mal den gesamten Coder der Methode und vielleicht noch die Klassendefinition (Headerfile) dazu.
-
Danke erst nochmal für Eure Anteilnahme, inzwischen konnte ich das Problem beseitigen. Es gab einige Stellen, an denen etwas in der Art vorkam
Grid *grid1 = new Grid(...); Grid *grid2 = grid1;und das Zuweisen der Zeiger war natürlich nicht gewollt. Da gab es überhaupt keine Möglichkeit, diese Grid-Objekte zu kopieren oder zuzuweisen, es wurde aber so getan, als hätte man unabhängige Objekte! Nachdem ich einen Kopierkonstruktor und ein = gebastelt habe und die entsprechenden Stellen geändert, scheint es keine derartigen Probleme mehr zu geben. Aber daß sich das auf cout auswirkt hätte ich jetzt nicht gedacht...
Grüße,
Uwe