Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    [C] Problema con puntatori e interi

    ho queste 4 funzioni:
    codice:
    void up (int *r, int *passi) {
    	if (r>0) {
    		r--;
    		passi++;
    	}
    }
    void down (int N, int *r, int *passi) {
    	if (<N) {
    		r++;
    		passi++;
    	}	
    }
    void right (int N, int *s, int *passi) {
    	if (s<N) {
    		s++;
    		passi++;
    	}
    }
    void left (int *s, int *passi) {
    	if (s>0) {
    		s--;
    		passi++;
    	}
    }
    quando vado a compilare mi da questo errore:
    codice:
    $ gcc -Wall campominato.c -o campominato
    campominato.c: In function ‘down’:
    campominato.c:85:6: error: expected expression before ‘<’ token
    campominato.c: In function ‘right’:
    campominato.c:91:7: warning: comparison between pointer and integer [enabled by default]
    visto che me lo da solo due funzioni mi chiedevo se potevate darmi qualche delucidazione.

  2. #2
    Utente bannato
    Registrato dal
    Oct 2010
    Messaggi
    1,219

    Re: [C] Problema con puntatori e interi

    codice:
    void up (int *r, int *passi) {
    	if (r>0) {
    		r--;
    		passi++;
    	}
    }
    void down (int N, int *r, int *passi) {
    	if (<N) {                    // manca il valore sinistro dell' espressione
    		r++;
    		passi++;
    	}	
    }
    void right (int N, int *s, int *passi) {
    	if (s<N) {    // s è un puntatore ad int , N un int (intendevi *s<N?)
    		s++;
    		passi++;
    	}
    }
    void left (int *s, int *passi) {
    	if (s>0) {
    		s--;
    		passi++;
    	}
    }

  3. #3
    l'operando sinistro c'è ho sbagliato io a copiare .....

    quello che nn capisco è perchè:
    r>0
    nn da errore mentre
    s<N
    si.
    anche 0 è un intero no?
    nn dovrebbe dare errore lo stesso?

  4. #4
    Non è un errore, è un warning. I puntatori possono essere confrontati come se fossero degli interi, ma spesso non ha molto senso farlo, pertanto il compilatore ti avvisa.

  5. #5
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,464
    Originariamente inviato da fermat
    anche 0 è un intero no?
    Sì ma è un particolare intero perché è il valore che assume un puntatore quando è NULL. E testare se un puntatore è NULL può avere un senso.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  6. #6
    Originariamente inviato da oregon
    Sì ma è un particolare intero perché è il valore che assume un puntatore quando è NULL. E testare se un puntatore è NULL può avere un senso.
    ah ok ok adesso mi è chiaro.
    grazie!!

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.