Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2006
    Messaggi
    58

    [C] Errore: Storage size of 'Player1' isn't known

    Ciao a tutti, questo è il mio primo post su questo forum e ne approfitto per salutare la community.

    Dunque... sapreste dirmi a cosa è dovuto l'errore in C ke dice "Storage size of 'Player1' isn't known"? Ho due file nel progetto...

    main.c
    strutture.c

    Tutte le strutture che ho creato sn implementate in un file chiamato strutture.c (incluso in main.c tramite #include), mentre nel main.c vengono utilizzate inizialmente in questo modo...

    codice:
    #include <stdio.h>
    #include "strutture.c"
    
    int main() {
        struct player Player1;        /* mi da errore su questo linea*/
    
    ...
    
    return 0;
    }

    grazie anticipatamente!

  2. #2
    Utente di HTML.it
    Registrato dal
    Dec 2003
    Messaggi
    423
    Posta anche il file strutture.c così possiamo farci un'idea precisa.
    A occhio però direi che basta che invece di
    codice:
    struct player Player1;
    scrivi
    codice:
    player Player1;

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2006
    Messaggi
    58
    ho risolto il problema, praticamente dichiaravo struct player player1 invece di struct Player player1. Penso ke si sarebbe potuto scrivere direttamente player player1 se avessi dichiarato un typedef per quella struttura.

    Adesso ho un errore su un vettore di strutture. mi da i seguenti errori...

    1) multiple definition of `Lista'
    2) first defined here

    ho notato ke se cambio il nome al vettore di strutture 'Lista' e compilo l'errore non me lo fa piu. Ma se aggiungo anke solamente una linea di codice semplice come printf e poi compilo mi ritorna l'errore.

    sarà ke rimane in memoria la struttura o roba del genere?


  4. #4
    Utente di HTML.it
    Registrato dal
    Dec 2003
    Messaggi
    423
    Il compilatore ti dice "Multiple definition", quindi evidentemente l'hai definito più volte. Per questo cambiando il nome non ti dà più problemi. Ripeto il mio invito a postare il codice.

  5. #5
    Utente di HTML.it
    Registrato dal
    Mar 2006
    Messaggi
    58
    eccolo....

    codice:
    /* strutture.c */
    
    struct Item {
           int id;
           
           /* Numero di oggetti IDENTICI. Per esempio quando si ha 300 freccie uguali,
              non vengono creati 300 item dello stesso tipo, ma viene incrementata 
              questa variabile per indicare che di quell'item se ne possiede un tot. */
           int amount;
           
           /* Nome dell'oggetto */
           char *name;
             
           /* L'item in questione è un arma? Si = 1, No = 0 */
           int isWeapon;
           
           /* I tipi di danno */
           int dam_physical;
           
           /* Difese: Fisico, Fuoco, Freddo, Veleno, Energia */
           int res_physical;
    } ItemList[] = {
      {0, 0, "Pugnale", 1, 2, 0},
      {1, 0, "Bastone", 1, 8, 0},
      {2, 0, "Spada", 1, 17, 0},
      {3, 0, "Lancia", 1, 22, 0},
      {4, 0, "Falce", 1, 14, 0},
      {5, 0, "Mazza chiodata", 1, 17, 0},
      {6, 0, "Mannaia", 1, 20, 0},
    };
    
    struct Inventory {
           /* Numero di oggetti nell'inventario */
           int items;
           
           /* Numero limite degli oggetti dell'inventario */
           int items_max;
           
           /* Viene creato un vettore di strutture per ospitare 100 oggetti di diverso tipo */
           struct Item MyItems[50];
    };
    
    struct Player {
           /* Nome dell'individuo */ 
           char *name;
              
           /* Forza, Inteligenza e Destrezza */
           int _str;
           int _int;
           int _dex;
                  
           /* Punti vita e Punti vita massimi */
           int hp;
           int hp_max;
           
           /* Difese totali dei vari tipi di danno */
           int res_physical;
           
           /* Viene creata una struttura che contiene l'inventario dell'individuo */
           struct Inventory MyInventory;
    };
    in main.c nn c'è ankora nulla... quindi posto solamente questo

  6. #6
    Utente di HTML.it
    Registrato dal
    Mar 2006
    Messaggi
    58
    Premetto kè ho compilato il tutto su Devcpp v4.9.9.2, potrebbe essere un bug?

  7. #7
    Utente di HTML.it
    Registrato dal
    Mar 2006
    Messaggi
    58
    non avete idea xke mi di quegli errori? vabeh... grazie cmq. ciao

  8. #8
    Utente di HTML.it
    Registrato dal
    Mar 2006
    Messaggi
    58
    Risolti tutti i problemi, ho trasformato il file strutture.c in strutture.h . ciao

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 © 2025 vBulletin Solutions, Inc. All rights reserved.