Aktuelle Zeit: 22.12.2024, 23:51

Alle Zeiten sind UTC + 1 Stunde




Ein neues Thema erstellen Auf das Thema antworten  [ 6 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: core::list<T> - bad_alloc
BeitragVerfasst: 08.04.2008, 16:16 
Offline
Benutzeravatar

Registriert: 17.02.2008, 14:08
Beiträge: 125
Hi,

hab letztens schon im Chat gefragt, bin aber leider zu keiner Lösung gekommen, also:
Ich möchte mit Listen arbeiten und da Irrlicht anscheinend seine eigenen mitbringt habe ich mal:
Code:
core::list<scene::ISceneNode*> nodelist;

geschrieben. Leider kommt jetzt immer wenn ich irgendwo in meinem Hauptcode ein new schreibe an dieser (von dem new) Stelle ein "bad_alloc" Fehler. Das new muss sich nicht einmal auf die Liste oder ein Element der Liste beziehen. Egal wo es steht und was damit erstellt werden soll, es kommt dieser Fehler.

Frage: Was muss ich machen damit es funktioniert?
Im Chat wurde mir was von reserve() gesagt. Allerdings gibt es das nur bei vector und wieso muss ich für die Liste Speicher reservieren, wo doch das new was ganz anderes erstellt?

MfG
FTC

_________________
Cold-Death
Magnon


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: core::list<T> - bad_alloc
BeitragVerfasst: 08.04.2008, 19:42 
Offline

Registriert: 16.01.2008, 12:31
Beiträge: 79
Also Du hast hier eine fertig instanzierte Liste von Pointern des Typs
Code:
scene::ISceneNode


Folgender Code lässt sich bei mir übersetzen, ist zwar Sinnlos und aus den Beispielen zusammkopiert aber das macht ja nichts, verdeutlicht zumindest die Benutzung.
Code:
irr::core::list<irr::scene::ISceneNode*> list;
scene::ISceneNode* node = 0;
node = smgr->addSphereSceneNode();
list.push_back(node);


Du könntest auch folgendes machen

Code:
irr::core::list<irr::scene::ISceneNode*> *list = new irr::core::list<irr::scene::ISceneNode*>;
scene::ISceneNode* node = 0;
node = smgr->addSphereSceneNode();
list->push_back(node);


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: core::list<T> - bad_alloc
BeitragVerfasst: 08.04.2008, 19:58 
Offline
Benutzeravatar

Registriert: 17.02.2008, 14:08
Beiträge: 125
Der erste Vorschlag scheint zwar sinnvoll, dennoch bekomme ich ein bad_alloc bei allen new Operatoren. zb new EventReceiver o.ä., die ja gar nichts mit der Liste zu tun haben.

Der zweite Vorschlag produziert bei mir den Fehler, es gäbe keinen zugehörigen delete-Operator..

Trotzdem thx, evtl weitere Vorschläge? :lol:
MfG

_________________
Cold-Death
Magnon


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: core::list<T> - bad_alloc
BeitragVerfasst: 09.04.2008, 10:26 
Offline

Registriert: 16.01.2008, 12:31
Beiträge: 79
Was für Dateien includierst Du?
Ich vermute Du benutzt irgendwas um MemoryLeaks zu finden, und irgendwas geht dabei schief und deswegen ist dein new/delete kaputt.

Mach mal ein neues Irrlicht Projekt und kopier mein Code da rein, wenn sich das schon nicht übersetzen lässt.
IDE/Compiler neu installieren und nochmal probieren.


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: core::list<T> - bad_alloc
BeitragVerfasst: 10.04.2008, 13:03 
Offline
Benutzeravatar

Registriert: 17.02.2008, 14:08
Beiträge: 125
Bei einem leerem Projekt geht es Problemlos.
Ich includiere, außer der irrlicht.h, noch <iostream> und <math.h>

MfG
FTC

_________________
Cold-Death
Magnon


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: core::list<T> - bad_alloc
BeitragVerfasst: 10.04.2008, 19:23 
Offline
Benutzeravatar

Registriert: 17.02.2008, 14:08
Beiträge: 125
Ok, das Problem hat sich gelöst. Es lag glaube ich daran das ich Mist bezüglich der Pointer gebaut hab :lol:

Thx für die Hilfe
MfG
FTC

_________________
Cold-Death
Magnon


Nach oben
 Profil  
 
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 6 Beiträge ] 

Alle Zeiten sind UTC + 1 Stunde


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 0 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de