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

    [C] puntatori e doppio puntatore

    ciao ragazzi,
    stavo guardando or ora il capitolo relativo alle funzioni delle stringhe.

    ora non capisco una cosa:

    double strtod(const char *nPtr,char ** endPtr);

    con il primo argomento su passa la stringa e cioe l indirizzo del suo primo elemento, fino a qui tutto ok...con il secondo argomento il libro dice che si passa un "puntatore a stringa".
    Perche se io dichiaro:

    char *pippo;

    e poi scrivo

    d=strtod(stringa,pippo)

    il compilatore protesta? mentre se scrivo

    d=strtod(stringa,&pippo) tutto fila liscio?

    non capisco perche ci sia la necessita di mettere l operatore & davanti alla variabile puntatore.....
    & non serve a restituire l indirizzo di una variabile?

    Help me!!! Very Confused! :master: :master: :master: :master: :master: :master:

  2. #2
    In questo caso la & ti restituisce l'indirizzo della locazione di memoria in cui si trova il puntatore.

    Cioè se A è un puntatore che punta a una stringa "pippo", A è una variabile, memorizzata nello spazio di indirizzi del programma, che contiene l'indirizzo dove si trova "pippo".
    &A ti dà l'indirizzo di A, cioè del puntatore, non della stringa.
    Passando per indirizzo un puntatore, puoi modificare la locazione di memoria da lui puntata, e non soltanto il valore che si trova all'indirizzo puntato.

    Lo so è un po' ingarbugliata la cosa, ci misi anche io un bel po' di tempo per capirla

  3. #3
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,466
    Una "stringa" C e' rappresentata da un "puntatore" a carattere.

    Se per un parametro ti si dice di passare una stringa, tu passi il puntatore a char.
    Ma se ti si dice di passare "un puntatore ad una stringa" vuol dire che devi passare "un puntatore ad un puntatore a char" ... Ecco il perche' del doppio puntatore.

  4. #4

    in poke parole

    MITICI

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.