Oppure

Loading
Questo topic e' stato chiuso dal moderatore.
12/11/14 22:10
dita94
Salve a tutti, sto svolgendo un esercizio per l'università e sono incappato in un errore che proprio non capisco.

In poche parole devo creare un programma con menù che mi permetta di gestire una lista di studenti.

Il file progetto è composto da più sorgenti, vi posterò solo le parti che credo siano interessate.

FILE lista.h
#ifndef LIST_H_DEFINED
#define LIST_H_DEFINED

typedef struct nodolista* link;
typedef struct lista* Lista;

...prototipi funzioni...
#endif


FILE lista.c
#include "item.h"
#include "lista.h"
#include <stdlib.h>
#include <stdio.h>
#include <string.h>

struct nodolista
{
    Item item; //guardare item.h e item.c
    link next;
    link prev;
};

struct lista
{
    link primo;
    link ultimo;
    int n;
};

//...........varie funzioni............

void ricercaestampa(Lista l, char *s, int n)
{
    int trovati = 0;
    link tmp;

    for(tmp=l->primo; tmp!=NULL; tmp=tmp->next)
    {
	if(n == 1)
	{
	    if(strcmp(s, tmp->item->nome) == 0) //ERRORE QUI( E ANCHE NELLA PRINTF IN BASSO
	    {
		printf("NOME: %s\nCOGNOME: %s\nMATRICOLA: %s\nCREDITI:%d\nMEDIA VOTI: %.2f\n\n",
                tmp->item->nome, tmp->item->cognome, tmp->item->matricola,
                tmp->item->carriera.crediti, tmp->item->carriera.media);

		trovati = 1;
	    }



FILE item.h
#ifndef ITEM_H_DEFINED
#define ITEM_H_DEFINED

#define MAX_STR 36

typedef struct studente* Item;

Item nuovoitem();

#endif


FILE item.c
#include "item.h"
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

struct carriera
{
    int crediti;
    float media;
};

struct studente
{
    char *nome;
    char *cognome;
    char *matricola;
    struct carriera carriera;
};

//...


Il compilatore mi restituisce l'errore del titolo nel file item.c 26 volte! ogni volta che provo ad accedere a i dati di struct studente(Item) con tmp->item->nome(oppure cognome/matricola/....)

Ringrazio in anticipo ogni eventuale aiuto!

p.s Credo che l'errore sia in queste parti di codice ma se così non fosse, chiedete per altre parti!
Ultima modifica effettuata da dita94 12/11/14 22:11
aaa
12/11/14 23:53
dita94
Sti c***i... Dopo 2 ore mi accorgo che ho messo male uno spazio....

lista.h
#ifndef LIST_H_DEFINED
#define LIST_H_DEFINED

[b]
typedef struct nodolista *Link; //mettevo l'asterisco subito dopo "nodolista" e "lista"
typedef struct lista *Lista;
[/b]


Che amarezza...

Spero sia di aiuto a qualcun altro in futuro almeno...
aaa