Citar
Aclarar que el codigo funciona pero no estoy seguro de que sea correcto
Código:
#include <stdio.h>
int* funcion ()
{
int resultado=9; //variable local de la funcion, al acabar la funcion se pierde el dato
int*puntero=&resultado; //cuando termine la funcion puntero no sabra a donde apuntar
return *puntero; //devuelvo el valor de resultado
}
int main(int argc, char *argv[])
{
int* p=funcion();
printf("%i",p); //9
return 0;
}
int* funcion ()
{
int resultado=9; //variable local de la funcion, al acabar la funcion se pierde el dato
int*puntero=&resultado; //cuando termine la funcion puntero no sabra a donde apuntar
return *puntero; //devuelvo el valor de resultado
}
int main(int argc, char *argv[])
{
int* p=funcion();
printf("%i",p); //9
return 0;
}
Si he comentado mal el programa por favor comentenlo, yo creo que aunque funcione seria incorrecto, porque una vez acabe la funcion, puntero no sabra a donde apuntar y podrian sobreescribirse direcciones de memoria. Ustedes que opinan?