Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Temas - aerolio_2

#1
Buenas,

Tengo un error que me está volviendo loco y no sé que hacer en algo que, aparentemente, es muy sencillo. Se trata de un crash a la hora de liberar memoria con delete. El código que estoy usando para crear la matriz dinámica de caracteres es el siguiente:

Código (cpp) [Seleccionar]
char **codigo;

codigo = new char*[(5*lineas)+1];
for (i = 0; i <= 5*lineas; i++) codigo[i] = new codigo[1001];

...

[ codigo del programa ]

...


for (i = 0; i <= 5 * lineas; i++) delete[] codigo[i];

delete[] codigo;



El error siempre se me produce en dos valores concretos, para i=256  o i= 527 y es un error intermitente, es decir, a veces me crashea en i=256, otras en i= 527 y otras veces me libera la memoria sin problemas y se termina de ejecutar el programa completo.

No encuentro ningún patron en las lineas en las que s eproduce el fallo y lo más desquiciante es el hecho de la aleatoriedad de que unas veces falle y otras no, con las mimsas condiciones de partida...  :-( :-( :-(


· Los códigos deben ir en etiquetas GeSHi
>aquí las reglas del foro
-Engel Lex
#2
Buenas,

Estoy programando una pequeña aplicación en C++ en la cual, al terminar la ejecución y tratar de liberar la memoria dinámica con delete[], el programa provoca un error de APPCRASH  :-\.

Si el mismo programa lo ejecuto en una máquina virtual en windows XP se ejecuta correctamente, el error solo sucede si lo ejecuto en windows 7  :-(.

He buscado información sobre este error y solo he encontrado que hay que desactivar la prevención de ejecución de datos para el programa que quiera ejecutar, pero eso no me ha funcionado.

¿Qué puedo hacer?  :huh: :huh: