A ver los que saben c más que yo...

Yo tengo una lista en la que tengo que meter dni y nombre por ejemplo. ordenada por dni como campo clave.
hago la estructura como esta
typedef struct _nodo{
int dni
char nombre [20];
struct _nodo*siguiente;
}tiponodo;
typedef tiponodo *pnodo;
typedef tiponodo *Lista;

pongo las funciones que me hacen falta y pasö a la funcion principal
main
la cuestión es si yo aqui pido un dni y un nombre de usuario, si se lo puedo pasar a la función insertar mediante esta forma
insertar(&lista, dni,nombre);
pero claro, luego en la función insertar, cómo reservo memoria para dos elementos?
void insertar(Lista *lista, int dni, char nombre){
mi duda está aqui, cómo reservo yo memoria para que almacenen dos datos pasados a esta función.
creo el nodo
pnodo nuevo, anterior;
nuevo=(pnodo)malloc sizeof(tipoNodo));
nuevo->valor=dni;
nuevo->nombre=nombre;
ESTO ÚLTIMO ESTARÍA BIEN?????




SALUDOS CORDIALES!!!!
 
Disculpa, pero como verás en la portada del foro y del portal este es el mayor sitio bara los amantes de la bateríoa en HABLA HISPANA.

Así que te agradeceríamos que hablases en castellano para que todos te entendamos.

Un saludo cordial del equipo de moderación y administración de BATACAS.





















:D
 
agregame al msn y te lo intento resolver que el jueves tengo examen de eso
 
ejem ejem, no tengo nada más que decir...





que nooooo que es bromaaaa! ojalá pudiera ayudarte pero tengo tostado el cerebro de tanto soldar y no puedo pensar ahora :baile:
 
jordiasb dijo:
Disculpa, pero como verás en la portada del foro y del portal este es el mayor sitio bara los amantes de la bateríoa en HABLA HISPANA.

Así que te agradeceríamos que hablases en castellano para que todos te entendamos.

Un saludo cordial del equipo de moderación y administración de BATACAS.
luego me llamarás como la otra noche y me dirás que te sientes solo y con ganas de rabo..., y yo como un tonto picaré.
Monitus dijo:
ejem ejem, no tengo nada m&#225]
jaajajajaja ese link está de la ostia, y si, antes de poner nada aqui uso el google, que soy más curioso que vago.
en fin, que dios reparta suerte, aunque suspenderé el examen, esto de estudiar y trabajar no es nada sencillo..., encima como en verano el resto de los técnicos tienen vacaciones me ha dicho el jefe que si puedo ir 3 horitas por la tarde, he dicho que si porque [mode acento catalan=ON] LA PELA ES LA PELA[mode=OFF] pero me ha jodido el estudiar algo por las tardes pa septiembre y el sacarme el carnet de conducir, asi que a ver cómo collons me organizo.....

PD: REID Y CELEBRAD QUE SEGUIMOS VIVOS!!!!
 
R
Eso es una lista enlazada, no?

Uf, hace un montón que no hago nada en C, pero si no recuerdo mal malloc devuelve un puntero a la dirección de memoria que estás reservando, así que debería bastar con nuevo = malloc (sizeof (tipoNodo)); , no necesitas hacer un casting porque "nuevo" ya es de tipo *pnodo.

Claro que ahora mismo no recuerdo si al declarar

pnodo nuevo, anterior;

tienes que volver a declararlas como punteros o no

pnodo *nuevo, *anterior;

(que me da que no)

Y por supuesto recuerda liberar esa memoria cuando ya no se utilice usando free(nuevo); , que si no te catean :D

Joder, esto de la programación se ve que no puede dejarse xD
 
Arriba Pie