Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2010
    Messaggi
    8

    [C] Puntatori e compilazione

    Ancora dei problemi nella programmazione. Questa volta riguarda i puntatori.
    codice:
    #include <stdio.h>
    #include <stdlib.h>
    int main (){
      int a = 3, b = c = 0, *p = NULL;
     b = 2 * (a + 5);
    p = &a;
    c = 2 * (*p + 5);
    printf("\n a = %d", a);
    printf("\n b = %d c = %d\n", b, c);
    return 0;
    }
    il gcc da il seguente errore:
    Puntatori1.c: In function ‘main’:
    Puntatori1.c:4: error: ‘c’ undeclared (first use in this function)
    Puntatori1.c:4: error: (Each undeclared identifier is reported only once
    Puntatori1.c:4: error: for each function it appears in.)


    ma non l'ho dichiarato con b = c = 0?

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    No ... devi scrivere

    int a = 3, b = 0, c = 0, *p = NULL;


    P.S. Cosa c'entrano i puntatori ?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2010
    Messaggi
    8
    Credevo che i puntatori entrassero in merito per due motivi : 1) l'esercizio è tratto dalla lezione sui puntatori
    2) l'operatore * viene accodato ai puntatori . Almeno secondo me...

    Come mai b = c = 0 non equivale a b = 0, c = 0?

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Originariamente inviato da Suppish
    Credevo che i puntatori entrassero in merito per due motivi : 1) l'esercizio è tratto dalla lezione sui puntatori
    Ma il problema l'hai nella dichiarazione di una semplice variabile, non di un puntatore ...

    2) l'operatore * viene accodato ai puntatori . Almeno secondo me...
    Ripeto ... il problema l'hai sulla variabile c che non è un puntatore ...

    Come mai b = c = 0 non equivale a b = 0, c = 0?
    Non nella dichiarazione ... potevi scrivere

    int b, c;
    b = c = 0;

    ma se inizializzate nella dichiarazione, deve essere

    int b = 0, c = 0;
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2010
    Messaggi
    8
    Mmm ora mi è chiara la differenza, non avevo individuato il problema perciò ho scritto l'argomento a cui apparteneva l'esercizio...d'altronde se avessi saputo che il problema era nell'inizializzazione non avrei postato

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.