Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it L'avatar di goatboy
    Registrato dal
    Mar 2011
    residenza
    Salerno
    Messaggi
    408

    [C] Dichiarare strutture globalmente

    Salve a tutti. Oggi ho sostenuto l'esame di Algoritmi & Strutture Dati e sono perplesso riguardo ad una cosa. Venivano dati dei prototipi di funzione che andavano necessariamente implementate, ma a nessuna di queste funzioni veniva passata la lista come parametro. Il prof ha detto di dichiarare le strutture globalmente. Ora, io le strutture le ho sempre dichiarate fuori dal main, ma la dichiarazione:
    codice:
    TList lista=NULL;
    l'ho sempre scritta nel main. Come la si dichiara globalmente?
    Io ho scritto la stessa cosa, fuori dal main, ma mi dava errori, che ora neanche ricordo bene. Mi pare non riconosceva i membri della struttura.

    Va dichiarata in un modo particolare?
    Spero di essere stato chiaro

  2. #2
    Utente di HTML.it L'avatar di Stoicenko
    Registrato dal
    Feb 2004
    Messaggi
    2,254
    Non vorrei dire baggianate ma fuori dal main deve essere per forza statica per essere dichiarata in quanto non può essere dichiarata come istanza di nulla.

  3. #3
    Utente bannato
    Registrato dal
    Apr 2012
    Messaggi
    510
    Va dichiarara allo stesso modo di come l' hai dichiarata, pero' fuori dal main. Fammi vedere il codice che ti crea problemi.


    PS: Non e' obbligatorio che una variabile globale sia statica.

  4. #4
    Utente di HTML.it L'avatar di goatboy
    Registrato dal
    Mar 2011
    residenza
    Salerno
    Messaggi
    408
    Originariamente inviato da Who am I
    Va dichiarara allo stesso modo di come l' hai dichiarata, pero' fuori dal main. Fammi vedere il codice che ti crea problemi.


    PS: Non e' obbligatorio che una variabile globale sia statica.
    Purtroppo non ho tutto il codice. La struttura l'ho scritta così, se non sbaglio:

    codice:
    struct SKey{
        int codice;
    };
    typedef struct SKey TKey;
    
    struct SInfo{
        TKey codice;
        char modello[MAXLEN];
        char casa[MAXLEN];
        int prezzo;
        int occorrenze;
    };
    typedef struct SInfo TInfo;
    
    struct SValues{
        TInfo info;
        struct SValues *link;
    };
    typedef struct SValues TValues;
    typedef struct TValues* TList;
    
    TList list;
    Tutto fuori dal main, però non mi riconosceva i membri della struttura TList. Ogni volta che scrivevo tipo "list->info.prezzo" mi diceva "info non riconosciuto come membro di una struttura o "union""

  5. #5
    Utente bannato
    Registrato dal
    Apr 2012
    Messaggi
    510
    Scrivi:

    codice:
    (list->info).prezzo
    L' operatore . ha la precedenza sull' operatore -> .

  6. #6
    Utente di HTML.it L'avatar di goatboy
    Registrato dal
    Mar 2011
    residenza
    Salerno
    Messaggi
    408
    Originariamente inviato da Who am I
    Scrivi:

    codice:
    (list->info).prezzo
    L' operatore . ha la precedenza sull' operatore -> .
    Ahhh
    Troppo tardi, l'esame era stamattina. Buono a sapersi per la prossima volta

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.