Visualizzazione dei risultati da 1 a 6 su 6

Discussione: [C] Vettori di struct

  1. #1
    Utente di HTML.it L'avatar di Alcott
    Registrato dal
    Jul 2003
    Messaggi
    154

    [C] Vettori di struct

    Ciao a tutti,
    stavo creando delle funzioni per la gestione delle liste, ma mi è sorto un dubbio. Mi dichiaro questa struttura:
    codice:
    struct pippo 
    {
      int i;
      struct pippo *next;
    }
    Ora dichiaro un array così: "struct pippo a[3];"
    e passo un elemento dell'array a come parametro di una funzione per aggiungere un elemento in un lista di elementi "pippo":
    codice:
    for (i=0; i<5; i++)
      addElem (a[0]); // mi crea una lista con root a[0]
    
    dove addElem scorre la lista, arrivato alla fine inserisce un
    nuovo elemento e incrementa i: a[0].i++
    La mia domanda è questa: passando il C i parametri per valore, gli elementi a[0].i ed a[0].next (che sono modificati in addElem) vengono realmente modificati (cioè le modifiche a queste variabili eseguite dalla funzione, muoiono con la fine della funzione o sono visibili al main?)?

  2. #2
    Utente di HTML.it L'avatar di Alcott
    Registrato dal
    Jul 2003
    Messaggi
    154
    Mi sono accorto gli elementi di vettori di struct sono passati per valore.
    Conoscete un modo per farlo passare per variabile?
    Ho provato una mezza schifezza che ovviamente dà errore
    codice:
    addElem (&a[0]);

  3. #3
    Ciao!! hai fatto in modo che nella intestazione della definizione
    di AddElem() accolga gli argomenti per indirizzo??
    Gli argomenti e i parametri devono corrispondere
    nel numero nel tipo e nello stesso ordine.

  4. #4
    Utente di HTML.it L'avatar di Alcott
    Registrato dal
    Jul 2003
    Messaggi
    154
    Ho dichiarato addElem così:
    codice:
    void addElem (struct pippo *lp); // lp è la struttura con il root della lista
    Credo sia corretto... o no?

    EDT: è corretto dichiarare così una malloc
    codice:
    struct pippo aux;
    ...
    aux = (struct pippo *) malloc (sizeof (struct pippo));
    ...

  5. #5
    Utente di HTML.it L'avatar di anx721
    Registrato dal
    Apr 2003
    Messaggi
    2,352
    struct pippo *aux;

    la seconda riga e corretta

    Sun Certified Java Programmer

    EUCIP Core Level Certified

    European Certification of Informatics Professionals

  6. #6
    Utente di HTML.it L'avatar di Alcott
    Registrato dal
    Jul 2003
    Messaggi
    154
    Grazie mille. Prob risolto

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 © 2026 vBulletin Solutions, Inc. All rights reserved.