free()?
Tendrias que fijar bien el concepto de punteros primero..
Trata de poner bien el codigo, sino nadie lo va a leer..
Código C:
Ver original#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#define ELEMENTOS 10
struct top_ten{
char nombre[30];
char cantante[30];
char comp_letra[30];
char comp_musica[30];
char disquera[30];
char fecha[30];
struct top_ten *siguiente;
};
struct top_ten *primero, *ultimo;
void menu()
{
printf("\n°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°° °°°°°°°°°°°°°°°°°°°°\n\n1. Mostrar todo\n 2. Añadir\n3. Desplegar Cada Dato\n4.Salir\n "); printf("\n°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°° °°°°°°°°°°°°°°°°°°°°\n"); }
void error()
{
printf("ERROR MORTAL\t error 1GRGR3872125000\t ERRROR!!!\n\t\t\tIntenta de nuevo......\n"); }
void anadir()
{
struct top_ten *nuevo;
nuevo
=(struct top_ten
*)malloc(sizeof(struct top_ten
)); if(nuevo==NULL)
printf("\n\tTOP TEN\nCancion:\n");
printf("\nCompositor de la letra\n"); printf("\nCompositor de la musica\n"); gets(nuevo
->comp_musica
); printf("\nFecha de Lanzamiento\n");
nuevo->siguiente=NULL;
if(primero==NULL)
{
printf("\n Primer elemento\n");
primero=nuevo;
ultimo=nuevo;
}
else
{
ultimo->siguiente=nuevo;
ultimo=nuevo;
}
}
void mostrar()
{
struct top_ten *auxiliar;
int i=0;
auxiliar=primero;
printf("\nMostrar la lista TOP TEN:\n"); while(auxiliar!=NULL)
{
printf("\nCancion: %s\nCantante: %s\nCompositor de Letra: %s\nCompositor de Musica: %s\n Disquera: %s\n Fecha de Lanzamiento: %s\n", auxiliar
->nombre
, auxiliar
->cantante
, auxiliar
->comp_letra
, auxiliar
->comp_musica
, auxiliar
->disquera
, auxiliar
->fecha
); auxiliar=auxiliar->siguiente;
i++;
}
if(i==0)
printf("\n La lista esta vacia\n"); }
void cadaDato()
{
struct top_ten *auxiliar;
auxiliar=primero;
printf("\nMostrar la lista TOP TEN:\n"); printf("\n1. Cancion\n 2.Cantante\n3.Compositor musica y letra\n 4. Disquera y Fecha de Lanzamiento\n\nOpcion: ");
switch(opcion)
{
case 1:
while(auxiliar!=NULL)
{
printf("\nCancion: %s\n", auxiliar
->nombre
); auxiliar=auxiliar->siguiente;
i++;
}
break;
case 2:
while(auxiliar!=NULL)
{
printf("\nCantante: %s\n", auxiliar
->cantante
); auxiliar=auxiliar->siguiente;
i++;
}
break;
case 3:
while(auxiliar!=NULL)
{
printf("\nCompositor de Letra: %s\nCompositor de Musica: %s\n ", auxiliar
->comp_letra
, auxiliar
->comp_musica
); auxiliar=auxiliar->siguiente;
i++;
}
break;
case 4:
while(auxiliar!=NULL)
{
printf("Disquera: %s\n Fecha de Lanzamiento: %s\n", auxiliar
->disquera
, auxiliar
->fecha
); auxiliar=auxiliar->siguiente;
i++;
}
break;
default:
break;
}
if(i==0)
printf("\n La lista esta vacia\n"); }
int main()
{
do{
menu();
switch(opcion){
case 1:
mostrar();
break;
case 2:
anadir();
break;
case 3:
cadaDato();
break;
case 4:
break;
default:
error();
break;
}
return 0;
}
saludos