Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2013
    Messaggi
    38

    [C] Dubbio puntatori e array

    salve,
    su una guida sul C ho letto che dato un puntatore:
    int *ptr
    per accedere al contenuto della locazione basta scrivere *ptr, mentre per accedere all'indirizzo della locazione basta scrivere ptr.

    Programmando, invece, (dato il seguente link: http://pastebin.com/Q14NmJCD ) noto che per stampare il contenuto di v[i] (nella riga 14 del link) non devo scrivere *v[i] ma v[i] (o comunque ptr[i] invece di *ptr). Mi sfugge qualcosa?
    E come mai non funziona l'istruzione ptr=v[0], per assegnare l'indirizzo della prima locazione del vettore a ptr?
    Grazie!

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    v[0] è il valore dell'elemento. Il suo indirizzo è v. Quindi ptr=v oppure ptr=&v[0]

    Il contenuto di v[i] lo ottieni con *(v+i)
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2013
    Messaggi
    38
    Quote Originariamente inviata da oregon Visualizza il messaggio
    v[0] è il valore dell'elemento. Il suo indirizzo è v. Quindi ptr=v oppure ptr=&v[0]

    Il contenuto di v[i] lo ottieni con *(v+i)
    ok, pensavo che essendo v un puntatore, il compilatore riconoscesse anche v[0] come puntatore...
    sarebbe stato lecito se invece avessi utilizzato le seguenti righe di codice?
    int *vet[10];
    *(vet[1])=1; //Per assegnare il valore 1 alla prima locazione del vettore
    Grazie!

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

    int *vet[10]

    è un vettore di puntatori. Ogni elemento del vettore è un puntatore.
    Con quella linea tu assegni il valore 1 alla prima locazione puntata dal secondo vettore dell'array ...
    E se v[1] non è inizializzato correttamente potresti anche avere un errore a runtime.
    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.