C/Visual C - Iniciacion de punteros "nodos" de lista

 
Vista:

Iniciacion de punteros "nodos" de lista

Publicado por alberto (1 intervención) el 10/11/2005 18:14:50
hola. Tengo este codigo:

#include <stdio.h>
#include <stdlib.h>

typedef struct tipo_nodo
{
int dato;
struct tipo_nodo *sig;
}nodo;

nodo* NuevoNodo(int x)
{
nodo *a;
a=(nodo *)malloc(sizeof(nodo));
a->dato=x;
a->sig=NULL;
return a;
}

void InsertarCabezaLista(nodo **cabeza,int dato)
{
nodo *nuevo;
nuevo=NuevoNodo(dato);
nuevo->sig=*cabeza;
*cabeza=nuevo;
}

void main(void)
{
int d;
nodo *cabeza,*actual;
cabeza=NULL;

InsertarCabezaLista(&cabeza,5);
InsertarCabezaLista(&cabeza,7);
InsertarCabezaLista(&cabeza,27);

actual=cabeza;

while (actual!=NULL)
{
printf("Elemento=%d\n",actual->dato);
actual=actual->sig;
}

}


funciona perfecto. Pero me pregunto ¿ por que debo iniciar el nodo cabeza a NULL ? ¿ Por que no tengo que reservar memoria para este nodo con calloc o malloc ?
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