Código
typedef struct ElementoLista { char *dato; struct ElementoLista *siguiente; } Elemento; typedef struct ListaIdentificar { Elemento *inicio; Elemento *fin; int tamanio; } Lista;
Código
int ins_en_lista_vacia (Lista * lista, char *dato) { Elemento *nuevo_elemento; { return -1; } { return -1; } nuevo_elemento->siguiente = NULL; lista ->inicio = nuevo_elemento; lista ->fin = nuevo_elemento; lista ->tamanio++; return 0; }
Es una funcion para insertar un elemento a una lista vacia, en la condicion 'if' primero le asigna espacio en la memoria a 'nuevo_elemento' y despues compara ese resultado con NULL, que significa eso? Generalmente asigno NULL a los punteros que todavia no apuntan a un elemento, ademas que en esa funcion le asigno memoria a 'nuevo_elemento' y despues a 'nuevo_elemento->dato', no seria suficiente con asignar memoria solo a 'nuevo_elemento->dato'?
Código
int main (void){ char eleccion; char *nom; Lista *lista; Elemento *actual;
Mi otra duda es que pude notar que asigno memoria a una estructura entera, 'Lista', no a una variable de tipo 'Elemento' como hizo en la funcion de insercion, por que no hacer lo mismo con todas las estructuras? No como hizo en la funcion 'ins_en_lista_vacia' que asigno en dos situaciones. Espero no haber hecho muchas preguntas, realmente me tiene confundida este tema de asignar memoria y no encuentro un medio para poder entenderlo mejor. Desde ya muchas gracias.