PDA

Visualizza la versione completa : [C++] Errore "Access Violation" per puntatore in chiusura programma


Adanf
16-10-2011, 00:46
Salve a tutti, volevo capire che tipo di errore sia questo qui:
http://giochihamachi.altervista.org/errore.png
Perchè mi capita tutte le volte che chiudo il programma, eppure questa stessa parte di codice viene utilizzata anche a runtime eseguendola manualmente e non da nessun problema, cancellando l'oggetto corretto.
grazie a tutti

oregon
16-10-2011, 00:50
Un errore di quel tipo (access violation) indica che si tenta di accedere a zone di memoria non allocate al processo.

In genere è il valore di un puntatore sbagliato (per vari motivi) che viene utilizzato per accedere a memoria.

In particolare controlla quel

collBodyes

argomento della funzione nella riga segnata ...

Adanf
17-10-2011, 06:47
Quindi è possibile che il puntatore punti ad un'area di memoria che alla chiusura del programma non sia più accessibile (anche se lui tenta di accederci subito dopo la chiusura)?
Perchè da lo stesso errore anche con gli altri 2 puntatori sotto (Body e sMesh).
Altrimenti non riesco a spiegarmelo, visto che finchè il programma è in esecuzione e uso quel distruttore nel main viene eseguito senza problemi, poi alla chiusura da quell'eccezione.

oregon
17-10-2011, 10:48
E' possibile ... anzi sicuro ...

Devi rivedere tutta la "vita" di quel puntatore perché quando arriva in quella linea, non è valido ...

Loading