Alguien puede encontrar el error aki!!!
#include <stdio.h>
char *rutina()
{
char miss[] = "Missatge de prova";
char *ptraux = miss;
printf("rutina: %sn", ptraux);
return (ptraux);
}
int main()
{
char *ptr;
ptr = rutina();
printf("main: %sn",ptr);
system("PAUSE");
return 0;
}
Hola,
me han pasado este codigo para ver si encuentro el fallo y decir que le pasa y corregirlo pero no soy capaz de encontrarlo. Se supone q el programa saca dos cadenas, una la funcion y otra el principal, deben ser iguales pero el principal falla.
Si alguien puede ayurdarme lo agradeceria.
Un saludo.
char *rutina()
{
char miss[] = "Missatge de prova";
char *ptraux = miss;
printf("rutina: %sn", ptraux);
return (ptraux);
}
int main()
{
char *ptr;
ptr = rutina();
printf("main: %sn",ptr);
system("PAUSE");
return 0;
}
Hola,
me han pasado este codigo para ver si encuentro el fallo y decir que le pasa y corregirlo pero no soy capaz de encontrarlo. Se supone q el programa saca dos cadenas, una la funcion y otra el principal, deben ser iguales pero el principal falla.
Si alguien puede ayurdarme lo agradeceria.
Un saludo.
Hola.
El error tiene como principio el "谩mbito de las variables".
La funci贸n 'rutina' devuelve o retorna la direcci贸n de memoria donde se encuentra la cadena "Missatge de prova".
Esa direcci贸n que devuelve se le asigna a la variable puntero 'ptr', pero para entonces, la cadena "Missatge de prova" ya no estar谩 en memoria, la cadena 'miss' se habr谩 destruido.
Posibles soluciones:
- La variable 'miss' se puede hacer global.
- Hacer uso de reserva de memoria.
Un saludo,
www.maacera.com
El error tiene como principio el "谩mbito de las variables".
La funci贸n 'rutina' devuelve o retorna la direcci贸n de memoria donde se encuentra la cadena "Missatge de prova".
Esa direcci贸n que devuelve se le asigna a la variable puntero 'ptr', pero para entonces, la cadena "Missatge de prova" ya no estar谩 en memoria, la cadena 'miss' se habr谩 destruido.
Posibles soluciones:
- La variable 'miss' se puede hacer global.
- Hacer uso de reserva de memoria.
Un saludo,
www.maacera.com
