Salve, ho un dubbio sul seguente esercizio:
Scrivere la funzione C void copy(BinSeq* dest, BinSeq* src) che, date in ingresso due sequenze binarie dest e src, copi in modo ricorsivo la sequenza binaria src in dest.
La struttura è questa:
// Struttura per la rappresentazione di una sequenza binaria
typedef struct BinSeq {
char* data; // la sequenza binaria è rappresentata come un array di caratteri '0' e '1'
int dimension; // dimensione dell'array contenente la sequenza binaria, non è la lunghezza della sequenza
} BinSeq;
Questa è la soluzione che ho pensato:
void copy(BinSeq* dest, BinSeq* src) {
char* temp=(char*) malloc(sizeof(char)); //variabile ausiliaria
if ((src->data)!='\0'){ //finché la stringa contiene caratteri
temp= src->data;
dest->data = src->data;
dest->data = temp;
copy(dest,src);
}
}
Ma ottengo
Segmentation Fault .
Qual'è l'errore? Sbaglio ad accedere alla struttura? Devo allocare spazio in modo diverso?
Grazie