Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    143

    [C] Esercizi su puntatori

    Ciao, devo svolgere questo esercizio
    codice:
    #include <stdio.h>
    #include <stdlib.h>
    #define N 5
    
    typedef struct apr{
    	int a[N];
    	int ff;
    } apr_int;
    typedef enum {FALSE, TRUE} bool;
    typedef enum {ERROR, OK} status;
    
    void init(apr_int* apr);
    
    menu() {
    	//system("clear");
    	printf("\n0 - Uscita");
    	printf("\n1 - init");	
    	printf("\nInserisci una risposta: ");
    	int risp;
    	scanf("%d", &risp);
    	getchar();
    	return risp;
    }
    
    main() {
    
    	while(1) {
    		int scelta = menu();
    		switch(scelta) {
    			case 0: 
    				exit(0);
    			case 1: 
    				printf("\nInizializzo l'apr azzerando ff: ");
    				init(&apr_int);
    				break;
    			default: 
    				exit(0);
    		}
    	}
    }
    
    /*
    	Inizializza l'apr azzerando ff.
    */
    void init(apr_int* apr) {
    	apr -> ff = 0;
    }
    ma non mi funziona, mi dice:
    codice:
    esercizi_apr.c: In function ‘main’:
    esercizi_apr.c:38:11: error: expected expression before ‘apr_int’
    Perchè?
    Grazie

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,476
    Cosa volevi fare in questa linea

    init(&apr_int);


    ?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    143
    Originariamente inviato da oregon
    Cosa volevi fare in questa linea

    init(&apr_int);


    ?
    prendere l'indirizzo di apr_int e passarlo al metodo init..

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,476
    apr_int è un "tipo di dato" ( per questo hai utilizzato la typedef ) non è una variabile.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    143
    E allora come dovrei correggere il codice?

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,476
    Non ho idea di cosa tu voglia fare con quell'applicazione ma devi avere una variabile di quel tipo prima di passarla ad una funzione

    apr_int tuavar;

    e poi

    init(&tuavar);
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  7. #7
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    143
    Originariamente inviato da oregon
    Non ho idea di cosa tu voglia fare con quell'applicazione ma devi avere una variabile di quel tipo prima di passarla ad una funzione

    apr_int tuavar;

    e poi

    init(&tuavar);
    Ok e poi come stampo il valore di ff per controllare che sia effettivamente a 0?

  8. #8
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    1,123
    Devi stamparlo o controllarlo?
    Comunque accedi al membro e lo controlli utilizzando un if...

  9. #9
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    143
    Voglio solo stamparlo
    Se faccio così non va
    codice:
    #include <stdio.h>
    #include <stdlib.h>
    #define N 5
    
    typedef struct apr{
    	int a[N];
    	int ff;
    } apr_int;
    typedef enum {FALSE, TRUE} bool;
    typedef enum {ERROR, OK} status;
    
    void init(apr_int* apr);
    
    
    menu() {
    	//system("clear");
    	printf("\n0 - Uscita");
    	printf("\n1 - init");		
    	printf("\nInserisci una risposta: ");
    	int risp;
    	scanf("%d", &risp);
    	getchar();
    	return risp;
    }
    
    main() {
    	apr_int x;
    	while(1) {
    		int scelta = menu();
    		switch(scelta) {
    			case 0: 
    				exit(0);
    			case 1: 
    				printf("\nInizializzo l'apr azzerando ff: ");
    				init(&x);
    				printf("\nff: %d", &(x->ff));
    				break;
    			default: 
    				exit(0);
    		}
    	}
    }
    
    /*
    	Inizializza l'apr azzerando ff.
    */
    void init(apr_int* apr) {
    	apr -> ff = 0;
    }
    Come ci entro nel campo ff di x?

  10. #10
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,476
    codice:
    printf("\nff: %d", x.ff);
    Devi studiare la teoria prima di scrivere codice. Dedicati ad un libro e alla teoria di base. Così non puoi imparare un linguaggio di programmazione come il C.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

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.