Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it L'avatar di Lak3d
    Registrato dal
    Aug 2006
    Messaggi
    1,031

    [C]Errori in fase di compilazione

    codice:
    #include <stdio.h>
    #include <stdlib.h>
    #include <time.h>
    
    struct card{
       char *face;
       char *suit;
    };
    
    typedef struct card Card;
    void FillDeck(Card * const wDeck, const char * wFace[], const char wSuit[]);
    void shuffle(Card * const wDeck);
    void deal(const Card * const wDeck);
    
    int main(){
    Card deck[52];
    
    const char *face[]={"Asso", "Due", "Tre", "Quattro", "Cinque", "Sei",
                        "Sette", "Otto", "Nove", "Dieci", "Jack", "Regina", "Re"};
    const char *suit[]={"Cuori", "Fiori", "Picche", "Quadri"};
    
    srand(time(NULL));
    
    FillDeck(deck, face, suit);
    shuffle(deck);
    deal(deck);
    
    return 0;
    }
    
    void FillDeck(Card * const wDeck, const char * wFace[], const char *wSuit[]){
    int i;
    
     for(i=0; i<=51; i++){
        wDeck[i].face=wFace[i%13];
        wDeck[i].suit=wSuit[i/13];
     }
    }
    
    void shuffle(Card * const wDeck){
    int i;
    int j;
    Card temp;
    
     for (i=0; i<=51; i++){
        j=rand()%52;
        temp=wDeck[i];
        wDeck[i]=wDeck[j];
        wDeck[j]=temp;
     }
    }
    
    void deal(const Card * const wDeck){
    int i;
       for(i=0; i<=51; i++)
          printf("%5s of %-8s%c", wDeck[i].face, wDeck[i].suit, (i+1)%2?'\t':'\n');
    }
    Gli errori riportati da Dev C++ in fase di compilazione sono i seguenti, entrambi nella funzione FillDeck:
    c:36: warning: assignment discards qualifiers from pointer target type
    c:37: warning: assignment makes pointer from integer without a cast

    Voi ci capite qualcosa? a me sembra perfetta...

    edit: il codice riempie una struttura Card, mescola i dati e stampa a video.
    edit2: la tag [C] è scomparsa durante il primo edit e con la modifica non funziona... si modifica solo il titolo all'interno. siete sotto vb?

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    codice:
    struct card{
       const char *face;
       const  char *suit;
    };
    e mi pare anche che i parametri nella dichiarazione della FillDeck non siano uguali a quelli della funzione ... ma questa puo' essere una svista.

  3. #3
    Utente di HTML.it L'avatar di Lak3d
    Registrato dal
    Aug 2006
    Messaggi
    1,031
    ok adesso funziona... grazie mille. Prima l'avevo fatto senza struttura ma usando una matrice bidimensionale e dava errori simili...

    Però una cosa non l'ho capita... se come parametro di una funzione ho un puntatore costante a dati variabili (la struttura appunto dovendo arricchirla...) perchè i suoi membri andrebbero dichiarati costanti? :master:

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.