cout << endl << "Presione una tecla para salir";
cin.get();
}
Título: Re: New Y Delete
Publicado por: Eternal Idol en Sábado 30 de Septiembre de 2006, 21:43
Esto no parece tener que ver nada con C++ ... proba cambiando eso por malloc/free ... estas incrementando pa y despues queres recorrerlo pero ya no tenes la direccion inicial ...
Título: Re: New Y Delete
Publicado por: AnioN en Sábado 30 de Septiembre de 2006, 21:56
si, es verdad. Pero puede ser qe se mismo codigo con malloc y free funcione?
Título: Re: New Y Delete
Publicado por: Eternal Idol en Sábado 30 de Septiembre de 2006, 22:13
Cita de: "AnioN"
si, es verdad. Pero puede ser qe se mismo codigo con malloc y free funcione?
No ... si estas leyendo una direccion incorrecta ... new y delete solo tienen diferencias si los usas con objetos, para tipos primitivos es lo mismo.
Título: Re: New Y Delete
Publicado por: Geo en Domingo 1 de Octubre de 2006, 00:29
Como dice Eternal Idol, ese código tampoco debe funcionar con malloc.
Es simple, reservas memoria para 10 enteros, entonces pa apunta al primero de ellos y puedes recorrerlos con pa[indice], pero luego haces pa++, con lo que, para cuando quieres liberar pa ésta ya anda por otro lado y marca un error al intentar liberar los 10 elementos a partir de donde al final apunta pa.
Si realmente quieres hacer algo así, usa dos punteros, así:
Código: Text
int* pa;
int* pb;
pb = new int[ 10 ];
pa = pb;
...
pa++
...
delete[] pb;
Saludos, JJ (Geo).
Título: Re: New Y Delete
Publicado por: Shuank en Lunes 2 de Octubre de 2006, 15:45
El error esta en el segundo For. Fijate que, el contador de Pa quedo en 9 en el anterior, y despues no lo volver a 0, entonces trata de mostrar el decimo Pa, despues el onceavo, los cuales , no existen.
Título: Re: New Y Delete
Publicado por: Eternal Idol en Lunes 2 de Octubre de 2006, 16:19
No me parece que sea necesario explicar lo mismo tres veces ... :lightsabre: