Salve a tutti,
questo problema mi sta facendo impazzire da mesi..
Allora, ho una struct di questo tipo
struct cluster_type{
int index;//indice del cluster
int totElements;//number of elements in the cluster
elementType *elements;//pointer to the elements of the cluster
clusterType *nextCluster;//point to next Cluster
int centroid;//the centroid
};
poi creo un puntatore a questa struttura...
struct cluster_type cluster1;
creo pian piano una lista di elementi di questo tipo.
A questo punto ho bisogno di modificare questa composizione aggiungendo e togliendo elementi senza intaccare la composizione originale. Devo dunque creare una lista uguale a questa.
La funzione memcopy non è idonea al caso, perché non funziona quando nella struttura ci sono puntatori.
Quindi devo eseguire la copia manuale. Ma se ad esempio nella funzione A chiamo la funzione copy(cluster1,cluster2). Anche se alloco spazio per cluster2 all'interno di A, all'uscita della funzione copy, cluster2 è sempre vuoto.
Come funziona la copia di due liste?