[ Foro de C ]

Matrices

18-Sep-2015 21:47
Invitado (Juan María galindio)
1 Respuestas

jose@debian:~/listados_ccc$ gcc ma_base.c -o base
ma_base.c: In function ?MuestraLista?:
ma_base.c:30:35: error: ?struct f? has no member named ?span?
    printf("Edad: %d\n\n", inicial->span>edad);
                                  ^
ma_base.c:30:42: error: ?edad? undeclared (first use in this function)
    printf("Edad: %d\n\n", inicial->span>edad);
                                         ^
ma_base.c:30:42: note: each undeclared identifier is reported only once for each function it appears in
ma_base.c: In function ?main?:
ma_base.c:37:3: warning: implicit declaration of function ?strcpy? [-Wimplicit-function-declaration]
  strcpy(dato1->nombre, "Pepe");           /* Guardamos el nombre, */
  ^
ma_base.c:37:3: warning: incompatible implicit declaration of built-in function ?strcpy?
ma_base.c:37:3: note: include ?<string.h>? or provide a declaration of ?strcpy?
jose@debian:~/listados_ccc$ ./base
bash: ./base: No existe el fichero o el directorio
jose@debian:~/listados_ccc$



Me da esté errror profesor nacho cabanes.

Y el listado es esté.

/*---------------------------*/
/*  Ejemplo en C nº 81:      */
/*  C081.C                   */
/*                           */
/*  Primer ejemplo de lista  */
/*  enlazada simple          */
/*                           */
/*  Curso de C,              */
/*    Nacho Cabanes          */
/*---------------------------*/

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

struct f {           /* Estos son los datos que guardamos: */
 char nombre[30];          /*   Nombre, hasta 30 letras */
 char direccion[50];       /*   Direccion, hasta 50 */
 int edad;                 /*   Edad, un numero < 255 */
 struct f* siguiente;      /*   Y dirección de la siguiente */
};

struct f *dato1;            /* Va a ser un puntero a ficha */
struct f *dato2;            /* Otro puntero a ficha */
struct f *dato3;            /* Y otro más */

void MuestraLista ( struct f *inicial ) {
 if (inicial!=NULL) {                      /* Si realmente hay lista */
   printf("Nombre: %s\n", inicial->nombre);
   printf("Dirección: %s\n", inicial->direccion);
   printf("Edad: %d\n\n", inicial->span>edad);
   MuestraLista ( inicial->siguiente );    /* Y mira el siguiente */
 }
}

int main() {
 dato1 = (struct f*) malloc (sizeof(struct f)); /* Reservamos memoria */
 strcpy(dato1->nombre, "Pepe");           /* Guardamos el nombre, */
 strcpy(dato1->direccion, "Su casa");     /*   la dirección */
 dato1->edad = 40;                        /*   la edad */
 dato1->siguiente = NULL;                 /* y no hay ninguna más */

 dato2 = (struct f*) malloc (sizeof(struct f)); /* Reservamos memoria */
 strcpy(dato2->nombre, "Juan");           /* Guardamos el nombre, */
 strcpy(dato2->direccion, "No lo sé");    /*   la dirección */
 dato2->edad = 35;                        /*   la edad */
 dato2->siguiente = NULL;                 /* y no hay ninguna más */
 dato1->siguiente = dato2;                /* Enlazamos anterior con ella */

 dato3 = (struct f*) malloc (sizeof(struct f)); /* La tercera */
 strcpy(dato3->nombre, "Carlos");
 strcpy(dato3->direccion, "Por ahí");
 dato3->edad = 14;
 dato3->siguiente = dato2;                /* enlazamos con la siguiente */
 dato1->siguiente = dato3;                /* y la anterior con ella */
 printf("La lista inicialmente es:\n");

 MuestraLista (dato1);
 dato1->siguiente = dato2;        /* Borrar dato3: Enlaza Dato1 y Dato2 */
 free(dato3);                     /* Libera lo que ocupó Dato3 */
 printf("Y tras borrar dato3:\n\n");
 MuestraLista (dato1);
 return 0;
}






23-Sep-2015 23:49
Nacho Cabanes (+83)

El error es claro:

ma_base.c:30:35: error: ?struct f? has no member named ?span?
   printf("Edad: %d\n\n", inicial->span>edad);

Ese "span" no debería aparecer ahí. Supongo que será un problema de formateo y coloreado de sintaxis en la conversión a HTML.






(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)