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

Nox

Supermoderator

Beiträge: 5 272

Beruf: Student

  • Private Nachricht senden

11

23.01.2005, 14:01

Bufferoverrun/flow entstehen dann, wenn man die Größe eines Zeigers überschreitet, also per Zeiger einen Adressblock außerhalb des Zeigersblocks anspricht.
P.S: müssen da keine geschweifen Klammern hin?

C-/C++-Quelltext

1
2
3
4
5
6
7
     // Idizes der Skybok eintragen 

    usSkyboxIndex[36]     =     {7,3,0,  4,7,0,    // Vorderseite 

                                    5,1,2,  6,5,2,  // Hinterseite 

                                    4,0,1,  5,4,1,  // Linke Seite 

                                    6,2,3,  7,6,3,  // Rechte Seite 

                                    2,1,0,  3,2,0,  // Oberseite 

                                    4,5,6,  7,4,6}; // Unterseite 

bassdscho

Alter Hase

  • »bassdscho« ist der Autor dieses Themas

Beiträge: 1 056

Wohnort: Heuchlingen

Beruf: Student - Technische Informatik

  • Private Nachricht senden

12

23.01.2005, 14:47

Da kommen keine geschweiften klammern hin. nur bei der initialisierung:

C-/C++-Quelltext

1
2
3
4
int array[5] = {1,2,3,4,5};

// andere werte

array[5] = 6,7,8,9;


Also des heißt in Klartext das die SetTexture Methode auf einen Speicher zugreifen will der mit dem Ponter den ich ihr übergebe gar nicht mehr definiert ist.

und was muss ich dann machen das das nicht mehr passiert?
Verlierer jammern immer von wegen ihr bestes!
Sieger gehen nach Hause und vögeln die Ballkönigin!

Nox

Supermoderator

Beiträge: 5 272

Beruf: Student

  • Private Nachricht senden

13

23.01.2005, 17:02

Es kann ihrgendein Zeiger in deinem Code sein, daher
alles auskomentieren und nach und nach wieder einfügen, um so den entsprechenden Block zu bekommen ;) , oder VC.net nutzen, denn dieser Compiler bietet die Möglichkeit alle Vars in Echtzeit zu überwachen und dir dadurch den genauen Namen zu sagen.
Definiert kann der Speicher schon sein, nur halt nicht mehr zu dem Zeiger gehörig...

bassdscho

Alter Hase

  • »bassdscho« ist der Autor dieses Themas

Beiträge: 1 056

Wohnort: Heuchlingen

Beruf: Student - Technische Informatik

  • Private Nachricht senden

14

23.01.2005, 17:53

Des ist der pSkyboxTexture Pointer aus meinem Code da oben. Wenn ich den auskommentier dann geht alles!! Bevor ich meine Skybox zeichnen wollte ging ja alles!! Ich weiß aber nicht warum der buffer overrun kommt!!
Verlierer jammern immer von wegen ihr bestes!
Sieger gehen nach Hause und vögeln die Ballkönigin!

Werbeanzeige