Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - Puntatori a puntatori di strutture
Forum - C/C++ - Puntatori a puntatori di strutture

Avatar
comina8 (Normal User)
Pro


Messaggi: 86
Iscritto: 18/06/2011

Segnala al moderatore
Postato alle 23:53
Venerdì, 12/08/2011
Eccomi di nuovo con dei problemi nella mia libreria matematica.

Premettendo il fatto che funziona (anche con l'assembly inline) volevo perfezionarla un po'.

typedef struct
{
   int i;
   char *p;
}*Struttura;

Creo un puntatore a struttura e lo alloco con la seguente funzione:

void start(Struttura *Num)
{
    *Num=(Struttura)calloc(1,sizeof(Struttura));
    (*Num)->p=(char*)calloc(100,sizeof(char));
}

Ora nel richiamare la funzione:

Struttura Num;

start(&Num);

Bisogna inserire l'&' anche in alcune funzioni dove devo copiare i puntatori per intero.
La mia idea era di togliere l'&' definendo la struttura come doppio puntatore, quindi (passatemi la frase) l'&' sarebbe automatico...

typedef...
**Struttura;

Solo che quando vado a definire start

void start(Struttura Num)
{
    *Num=(Struttura)calloc(1,sizeof(Struttura));
    (*Num)->p=(char*)calloc(100,sizeof(char));
}

La definisco allo stesso modo e un codice come questo:

Codice sorgente - presumibilmente C/C++

  1. int main()
  2. {
  3.     Struttura Num;
  4.  
  5.     start(Num);
  6.     stop(Num);
  7.  
  8.     return 0;
  9. }



non mi da problemi (a parte un warning nella prima calloc). Il problema me lo da dichiarare due variabili (non allocare, solo dichiararne un'altra) mi manda in crash il programma.

Qualcuno sa come mai?

Ultima modifica effettuata da comina8 il 15/08/2011 alle 21:44
PM Quote