Ho un problema nel mio progetto. A volte l'esecuzione fallisce con l'errore "non accedere ad una posizione di lettura/scrittura xxxxx". So che si tratta di un errore di corruzione della memoria. Ma come posso rintracciare questo errore. Sta fallendo nella deallocazione di memoria di una variabile, se commento quella linea sta funzionando bene. Cioè, la memoria per questa variabile è già stata rilasciata. Prima stava funzionando bene, ho aggiunto il codice di recente ma non ho cambiato nulla relativo a questo. Come posso controllare la corruzione della memoria per questo.come controllare la corruzione della memoria in C++
risposta
Con le informazioni fornite, dovrai scorrere tutto il codice che hai aggiunto di recente (se si tratta di un problema recente) e valutare e controllare ogni riga e vedere se stai stompando la memoria. memcopy
è un comando che può causare questo tipo di errore se stai allocando troppo per la dimensione dell'elemento che stai copiando.
Assicurati di cancellare solo gli oggetti (puntatori) una volta.
Usa valgrind se sei sotto linux, ti mostrerà esattamente cosa sta succedendo se calpesti la tua memoria.
Su finestre: see here.
No. Sono su Windows. usando l'editor VS 2008 – Amaravathi
@Amaravathi Bene, perché non l'hai detto nella tua domanda iniziale? Avrebbe aiutato grandi quantità. – Bojangles
Avere un problema di corruzione della memoria tranne quando corro sotto valgrind quindi non segfault ovviamente, naturalmente. –
Se si utilizza Windows, provare winDbg. È il migliore e molto potente.
- 1. la corruzione della memoria con std :: initializer_list
- 2. Corruzione della memoria con clEnqueueWriteBuffer - OpenCL
- 3. Come controllare la deallocazione della memoria
- 4. Controllare l'utilizzo della memoria in haskell
- 5. Corruzione della memoria in System.Move a causa della modifica della modalità 8087CW (png + stretchblt)
- 6. Come è possibile controllare l'utilizzo della memoria in Cordova?
- 7. Doppio a `unsigned long long` provoca memoria (pila?) La corruzione
- 8. C# Memorizza la memoria in%
- 9. Come conoscere l'utilizzo della memoria in C++
- 10. doppio libero o la corruzione di errore nel programma c
- 11. Trovare la corruzione in un elenco collegato
- 12. C++: errore di corruzione del puntatore strano
- 13. Posso forzare la pulizia della memoria in C#?
- 14. Controllare la dimensione della cartella in Bash
- 15. C aiuto della memoria # directory.getfiles
- 16. c utilizzo della memoria # filo
- 17. C++: sulla gestione della memoria
- 18. Profilo di allocazione della memoria in C++
- 19. Puntatori e allocazione della memoria in C
- 20. Come controllare la conversione di tipo in C#
- 21. GetCPUDescriptorHandleForHeapStart corruzione dello stack
- 22. paradigmi di gestione della memoria C++
- 23. Come controllare la lunghezza della coda in Python
- 24. Corruzione opengl texture Android
- 25. Come posso controllare la velocità della ventola del mio PC usando C++ in Vista?
- 26. Meglio rilevazione corruzione SQLite
- 27. Come modificare la memoria condivisa (shmget/shmat) in C?
- 28. Come ottenere l'utilizzo della memoria in Swift
- 29. allocazione della memoria per il programma C
- 30. esplicitamente liberando la memoria in C#
Che sistema operativo, compilatore e IDE stai utilizzando? –
Quale piattaforma? In ogni caso, fai qualche ricerca su google o cerca SO, questa domanda è stata posta a morte un milione di volte. –
@Amaravathi Probabilmente c'è una doppia cancellazione nel tuo programma. Con solo la descrizione, non è possibile dire dove si trova il problema. Replicare il problema su un piccolo programma e inserire il codice qui. – Mahesh