C/Visual C - Alguien puede encontrar el error aki!!!

 
Vista:

Alguien puede encontrar el error aki!!!

Publicado por Sergio (2 intervenciones) el 20/12/2005 23:42:02
#include <stdio.h>

char *rutina()
{
char miss[] = "Missatge de prova";
char *ptraux = miss;

printf("rutina: %s\n", ptraux);

return (ptraux);
}

int main()
{
char *ptr;

ptr = rutina();

printf("main: %s\n",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.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

RE:Alguien puede encontrar el error aki!!!

Publicado por chuidiang (73 intervenciones) el 21/12/2005 05:27:59
Hola:

El fallo es que la función está devolviendo un puntero a una variable local miss. Cuando se hace el return de la función, dicha variable local miss desaparece, y el puntero devuelto apunta a algo que ya existe.

Cuando main() intenta utilizar ese puntero, ese puntero no es válido. Según el compilador que sea, puede pasar cualquier cosa, desde que funcione bien hasta que te salga la cadena vacía o te de un error.

Se bueno.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Alguien puede encontrar el error aki!!!

Publicado por Sergio (2 intervenciones) el 21/12/2005 08:48:02
Gracias crack, estuve ayer rayandome y no encontraba el fallo, se nota la falta de practica en esto de la programacion.

Un saludo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar