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.


Anmelden zum Antworten