Moin,
Allerdings bekomme ich bei der Ausführung eine Fehlermeldung zu einem unerlaubten Speicherzugriff.
Wenn ich unten makierte Codezeile (der Übeltäter) auskommentiere, bekomme ich keinen unerlaubten Speicherzugriffsfehler mehr. Allerdings entsteht dann doch auch ein Memory-Leak, oder?
Ich werde den Eindruck nicht los, dass da in deinem Code ein logischer Fehler steckt. Du versuchst in der for-Schleife, die vorhandene(n) Grafikkarte(n) zu finden. Falls das in _einem_ Durchlauf fehlschlägt, gibst du innerhalb der Schleife sowohl das g_pD3D-Objekt wieder frei (g_pD3D->Release()) als auch das Array g_pAdapters.
Und nach dem Ende der Schleife tust du dasselbe nochmal?
Ohne die D3D-Funktionen genau zu kennen, würde ich zumindest sagen: Das ist verdächtig.
Abgesehen davon: Ist das korrekt, den delete-Operator noch mit Index-Klammern auszustatten? Anhand der Deklaration von g_pAdapters ist eh klar, dass es sich um ein Array handelt. Ich habe diese Klammern bei delete jedenfalls noch nie gesetzt; sie irritieren mich. Mag aber auch an meiner generell geringen Praxis mit OOP und C++ zusammenhängen - ich bevorzuge sonst "reines" C und malloc() und free() (bzw. deren Win32-API-Entsprechungen) zur Speicherverwaltung
Schönen Tag noch,
Martin
Was ist schneller: Das Licht oder der Schall?
Offensichtlich der Schall. Wenn man den Fernseher einschaltet, kommt immer erst der Ton, und dann erst das Bild.