somos programacion

1
SOMOS PROGRAMACION Hola, ya encontrado el fallo, tienes 2 errores, uno al principio haces: prin=(nodo*)malloc(sizeof(nodo)); //fin=(nodo*)malloc(sizeof(nodo)); Te he comentado fin, porque si reservas memoria para fin, luego en la funcion no puedes hacer cosas del estilo, fin=registro; es porque despues del malloc tanto prin y fin tienen una direccion de memoria fija, y esta no se puede cambiar! y el segundo fallo: tu cuando pasas variables a una funcion , esas variables (en este caso nodo* registro, nodo *fin) no las estas cambiando realmente, se hace una copia en memoria pero los cambios no surten efecto en la variable original, que es lo que tu querias, quizas con un ejemplo me explique mejor; int x=5; mi_funcion(x); printf("%d\n",x); //el resultado sera 5!! mi_funcion(int x){ x=10; }

Upload: hdz122332

Post on 29-Jan-2016

212 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Somos Programacion

SOMOS PROGRAMACION

Hola, ya encontrado el fallo, tienes 2 errores, uno al principio haces:prin=(nodo*)malloc(sizeof(nodo));//fin=(nodo*)malloc(sizeof(nodo));Te he comentado fin, porque si reservas memoria para fin, luego en la funcion no puedes hacer cosas del estilo,fin=registro;es porque despues del malloc tanto prin y fin tienen una direccion de memoria fija, y esta no se puede cambiar!y el segundo fallo:tu cuando pasas variables a una funcion , esas variables(en este caso nodo* registro, nodo *fin) no las estas cambiando realmente, se hace una copia en memoria pero los cambios no surten efecto en la variable original, que es lo que tu querias, quizas con un ejemplo me explique mejor;int x=5;mi_funcion(x);printf("%d\n",x); //el resultado sera 5!!mi_funcion(int x){x=10;}