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

    [C] Copia esplicita di una struttura

    Ciao ragazzi, il mio problema è questo :

    ho in un file.h definite queste strutture

    typedef struct hashE{
    char * key;
    typevalue_t value;
    struct hashE * next;
    } hashElement_t;



    typedef struct {
    int size;
    hashElement_t ** table;
    } hashTable_t;


    e poi in file.c devo scrivere una funzione che riceve in input un puntatore a hashElement_t e deve dare in output una sua copia esplicita.

    hashElement_t * Copy(hashElement_t * element);

    Mi sapete dire come posso implementare questa funzione??

    GRAZIE

  2. #2
    Utente di HTML.it L'avatar di GabbOne
    Registrato dal
    Mar 2006
    Messaggi
    577
    allora se come penso devi fare una copia di una righa della hashtable devi dichiararti all'interno della funzione due variabili di tipi variabile hashElement_t * una per mantenerti la testa della righa e una per scorrere la lista mentre la allochi in memoria
    a questo punto devi fare un ciclo fino a quando la richa passata (nella funzione) non finisce e cioè (*element).next==NULL ed a ogni passo fare una malloc

    devi fare attenzione a inquadrare il primo passo del ciclo perche ti serve ricordare qualè la testa della lista che stai allocando (copiando) puoi inizializzare hashElement_t * testa=NULL e fare un controllo su questo valore al primo ciclo
    se la variabile è null allora dai il valore restituito dalla malloc alla testa altrimenti lavori su tmp (ricorda che tmp e testa lavorano sulla stessa lista .

    per quanto riguarda il codice cè da perderci un po di tempo se non ci riesci facci vedere un po di quello che hai scritto ciao

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.