Problemas con punteros
Publicado por charlx (2 intervenciones) el 27/07/2011 07:21:46
Buenas, tengo un problema con un programa, está muy corto y simple:
#include <stdio.h>
#include <conio.h>
main()
{
int *pint, *pint2;
printf("\n Dirección de memoria de pint: %p \n",&pint);
printf("\n Dirección de memoria de pint2: %p \n",&pint2);
*pint=10;
*pint2=6; //<---- Parece que este es el problema
printf("\n Valor de pint: %d \n",*pint);
printf("\n Valor de pint2: %d \n",*pint2);
pint2=pint;
printf("\n Atención acabo de igualar los dos punteros \n");
printf("\n Dirección de memoria de pint: %p \n",pint);
printf("\n Dirección de memoria de pint2: %p \n",pint2);
printf("\n Valor de pint: %d \n",*pint);
printf("\n Valor de pint2: %d \n",*pint2);
getch();
}
lo ejecuto con el Dev-C++ 4.9.9.2, en sí no hay ningún problema de compilación, no marca errores e igualmente no le veo ningún problema, pero por alguna razón siempre se traba a la hora de ejecutarse y me sale un mensaje de error por lo que finaliza la ejecución. Sí me muestra los dos primeros mensajes pero luego me sale el clásico de que se ha detectado un problema y debe cerrarse.
Por alguna razón no me sale el error si quito la parte en la que le asigno un valor a pint2 (pint2=6), por lo que creí que no puede trabajar con dos punteros a la vez (lo cual de por sí ya sería extraño), pero si elimino el del primer pint (pint=10) y dejo el segundo (pint2) me sigue marcando el mismo problema y cierra y la ejecución. ¿Será algún problema del propio IDE o del compilador?, es muy raro que solo sea por esa asignación.
Quizá si alguien más lo copia y corre para ver si le sale el error, se los agracezo si alguien sabe porque sucede este problema.
#include <stdio.h>
#include <conio.h>
main()
{
int *pint, *pint2;
printf("\n Dirección de memoria de pint: %p \n",&pint);
printf("\n Dirección de memoria de pint2: %p \n",&pint2);
*pint=10;
*pint2=6; //<---- Parece que este es el problema
printf("\n Valor de pint: %d \n",*pint);
printf("\n Valor de pint2: %d \n",*pint2);
pint2=pint;
printf("\n Atención acabo de igualar los dos punteros \n");
printf("\n Dirección de memoria de pint: %p \n",pint);
printf("\n Dirección de memoria de pint2: %p \n",pint2);
printf("\n Valor de pint: %d \n",*pint);
printf("\n Valor de pint2: %d \n",*pint2);
getch();
}
lo ejecuto con el Dev-C++ 4.9.9.2, en sí no hay ningún problema de compilación, no marca errores e igualmente no le veo ningún problema, pero por alguna razón siempre se traba a la hora de ejecutarse y me sale un mensaje de error por lo que finaliza la ejecución. Sí me muestra los dos primeros mensajes pero luego me sale el clásico de que se ha detectado un problema y debe cerrarse.
Por alguna razón no me sale el error si quito la parte en la que le asigno un valor a pint2 (pint2=6), por lo que creí que no puede trabajar con dos punteros a la vez (lo cual de por sí ya sería extraño), pero si elimino el del primer pint (pint=10) y dejo el segundo (pint2) me sigue marcando el mismo problema y cierra y la ejecución. ¿Será algún problema del propio IDE o del compilador?, es muy raro que solo sea por esa asignación.
Quizá si alguien más lo copia y corre para ver si le sale el error, se los agracezo si alguien sabe porque sucede este problema.
Valora esta pregunta
0