Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

  • »Sebastian Müller« ist der Autor dieses Themas

Beiträge: 369

Wohnort: Freilingen [Rheinland-Pfalz]

Beruf: Schüler

  • Private Nachricht senden

1

12.09.2013, 18:29

Nullpointer beim Initialisieren eines tbModel objektes. [GELÖßT]

Liebe Leser

Ich Entwickle grade das Erste große Projekt und ich habe große Probleme beim Initialisieren von einem Tribase Model.
ich habe die Klasse etwas abgekürzt jedoch ist das Problem trotzdem erhalten

C-/C++-Quelltext

1
2
3
4
5
6
7
class CPart1 
{ 
public: 
tbModel *mp_Model; 
CPart1(): mp_Model(NULL) {} 
tbResult Init(); 
};

In CPart1::Init wird das Modell geladen

C-/C++-Quelltext

1
2
3
4
5
6
tbResult CPart1::Init() 
{ 
mp_Model = new tbModel; 
if(mp_Model->Init("DATA\\Obj\\Island\\Island.tbm","DATA\\Texture\\World\\","")) TB_ERROR("Fehler beim Laden des Landschaftsmodels (Part1)",TB_ERROR); 
return TB_OK; 
}

Beim Compilieren zeigt der Compiler mir eine Fehlermeldung (Nullpointer) (Unbehandelte Ausnahme bei 0x00236efd in Projekt Nr.1.exe: 0xC0000005: Zugriffsverletzung beim Schreiben an Position 0xcdcdcdcd.)
Er deute auf die Stelle ( mp_Model = new tbModel )
Wenn mp_Model in derselben Datei Definiert wird wo die Init Funktion ist dann klappt es

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Sebastian Müller« (13.09.2013, 18:55)


FSA

Community-Fossil

  • Private Nachricht senden

2

12.09.2013, 18:33

Du hast wahrscheinlich vergessen eine Instanz von CPart1 zu erzeugen.
Was hat das mit dem Kompilieren zu tun?

Zitat

Der RCCSWU (RandomCamelCaseSomtimesWithUndersquare) Stil bricht auch mal mit den veraltet strukturierten Denkmustern und erlaubt dem Entwickler seine Kreativität zu entfalten.

  • »Sebastian Müller« ist der Autor dieses Themas

Beiträge: 369

Wohnort: Freilingen [Rheinland-Pfalz]

Beruf: Schüler

  • Private Nachricht senden

3

13.09.2013, 18:54

Vielen Danke

Ich habe noch mal nach deinem Tipp die Stelle geprüft.

Als die Modelle Initialisiert wurden wurde Der Befehl (gp_Part1 = new CPart1) noch nicht ausgeführt. Die Instanz von CPart1 wurde zum Zeitpunkt der Initialisierung der Modelle noch gar nichts erzeugt.

Vielen Dank :) Jetzt klappt alles

Werbeanzeige