elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Rompecabezas de Bitcoin, Medio millón USD en premios


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Crash al usar operadores new y delete.
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Crash al usar operadores new y delete.  (Leído 1,764 veces)
aerolio_2

Desconectado Desconectado

Mensajes: 6


Ver Perfil
Crash al usar operadores new y delete.
« en: 25 Marzo 2017, 20:33 pm »

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
  1. char **codigo;
  2.  
  3. codigo = new char*[(5*lineas)+1];
  4. for (i = 0; i <= 5*lineas; i++) codigo[i] = new codigo[1001];
  5.  
  6. ...
  7.  
  8. [ codigo del programa ]
  9.  
  10. ...
  11.  
  12.  
  13. for (i = 0; i <= 5 * lineas; i++) delete[] codigo[i];
  14.  
  15. 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


« Última modificación: 25 Marzo 2017, 22:59 pm por aerolio_2 » En línea

ivancea96


Desconectado Desconectado

Mensajes: 3.412


ASMático


Ver Perfil WWW
Re: Crash al usar operadores new y delete.
« Respuesta #1 en: 25 Marzo 2017, 21:28 pm »

En un lugar pusiste atvl y en el otro pusiste codigo.
Y luego pusiste new codigo[1001] en vez de new char[1001].

Será
Código
  1. codigo[i] = new char[1001];


En línea

aerolio_2

Desconectado Desconectado

Mensajes: 6


Ver Perfil
Re: Crash al usar operadores new y delete.
« Respuesta #2 en: 25 Marzo 2017, 23:01 pm »

Corregido, en todas las lineas está escrito codigo. En cualquier caso el problema creo que no está a la hora de hacer el delete, sino que durante la ejecución del programa se termina escribiendo en una zona de memoria donde no se debe...
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Los operadores ralentizan YouTube para presionar a Google y que pague por usar..
Noticias
wolfbcn 6 3,236 Último mensaje 9 Mayo 2011, 04:03 am
por Foxy Rider
DELETE sql
Bases de Datos
andaluz 0 1,803 Último mensaje 1 Junio 2012, 19:20 pm
por andaluz
[C++] Duda con new y delete[] o delete Tratando de hacer matriz dinamica
Programación C/C++
capsulasinformaticas 7 4,981 Último mensaje 21 Marzo 2013, 18:03 pm
por capsulasinformaticas
(ayuda) Operadores new y delete
Programación C/C++
TheZeck 3 1,911 Último mensaje 29 Julio 2016, 16:26 pm
por engel lex
se pueden usar comodines con reg delete?
Scripting
JW2 2 3,024 Último mensaje 13 Julio 2017, 20:13 pm
por JW2
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines