Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - Doppio Puntatore
Forum - C/C++ - Doppio Puntatore

Avatar
caiser (Normal User)
Newbie


Messaggi: 7
Iscritto: 12/09/2013

Segnala al moderatore
Postato alle 16:21
Martedì, 22/10/2013
Salve ragazzi.

Scusate la mia ingenuità sull'argomento.

Mentre sto continuando con i miei studi amatoriali riguardante le Qt del C++
sono inciampato in un doppio puntatore.

Ammetto che non sapevo che era possibile farlo.

Qual'è il senso dell'utilizzo del **?

Codice sorgente - presumibilmente C++

  1. void QMetaObject::activate(QObject *sender, int signalOffset, int local_signal_index, void **argv)
  2. {
  3.     int signal_index = signalOffset + local_signal_index;
  4.  
  5.  QObjectConnectionListVector *connectionLists = sender->d_func()->connectionLists;
  6.     const QObjectPrivate::ConnectionList *list =
  7.         &connectionLists->at(signal_index);
  8.  
  9.   QObjectPrivate::Connection *c = list->first;
  10.     if (!c) continue;


PM Quote
Avatar
pierotofy (Admin)
Guru^2


Messaggi: 6230
Iscritto: 04/12/2003

Segnala al moderatore
Postato alle 16:27
Martedì, 22/10/2013
Codice sorgente - presumibilmente C/C++

  1. int a = 5;
  2. int *b = &a;
  3. int **c = &b;
  4. cout << **c << endl; // <-- 5



Potresti fare anche un puntatore ad un puntatore ad un puntatore ad un puntatore... ecc.

Nel caso di argv e' utile perche' argv e' un array di stringhe (ogni elemento dell'array = puntatore, ogni stringa = puntatore).

* ha due scopi; dichiarare una variabile puntatore (se usato nella dichiarazione di una variabile), oppure per dereferenziare un puntatore. Quando chiami *variabile, stai chiedendo di dereferenziare la variabile (andare a vedere che cosa c'e' all'indirizzo puntato).

Ultima modifica effettuata da pierotofy il 22/10/2013 alle 16:29


Il mio blog: https://piero.dev
PM Quote
Avatar
ZioCrocifisso (Member)
Pro


Messaggi: 135
Iscritto: 06/03/2013

Segnala al moderatore
Postato alle 18:13
Martedì, 22/10/2013
Il doppio puntatore viene utilizzato soprattutto negli array di array, specialmente quando gli array inferiori hanno dimensione variabile e/o sono allocati dinamicamente, e negli array di puntatori (gli array di array sono effettivamente array di puntatori, ma non necessariamente un array di puntatori è un array di array).

PM Quote
Avatar
caiser (Normal User)
Newbie


Messaggi: 7
Iscritto: 12/09/2013

Segnala al moderatore
Postato alle 9:55
Mercoledì, 23/10/2013
grazie mille a tutti.

siete stati molto precisi e dettagliati vi ringrazio di tutto.

PM Quote