Speicherresevierungsprob
-
Hi,
ich habe eine Struktur angelegt:
Diese Struktur definiert ein Objekt in meinem Prog.
Jedesmal wenn ein Neues Objekt hinzukommt, wird durch
"objekte = (objektetyp*)realloc(objekte,(i+1) * sizeof(objektetyp));"
mein Objektarray um 1 erhöht.
In diesem Objekt mache ich folgendes:
"objekte[i].vectoren = (D3DVERTEX*)malloc(X.vectoren_anzahl*sizeof(D3DVERTEX));"
Das hat auch alles funktioniert.
Nur habe ich die Struktur um
"DWORD faces_anzahl;"
erweitert,
und jetzt knallt mir mein Prog immer mit
"Der Vorgang read konnte nicht auf dem Speicher durchgefürt werden"
weg.
Aber nur wenn ich das Prog ausserhalb von Visual C++ ausführe,
also die .exe starte.
Lasse ich "DWORD faces_anzahl;" weg, geht alles wieder.
-
Warum die mühe mit malloc und realloc? Was spricht gegen std::vector und ähnliches?
-
Wenn du C++ programmierst, solltest du dir für dynamische Speicherverwaltung einen vector anschauen! Das ist wesentlich einfacher als die alte C-Speicherverwaltung, ansonsten bist du acuh im falschen Forum gelandet.