Ciao a tutti!
Devo creare una funzione per la gestione dei cani in un canile mediante struttura albero binario. Questa funzione deve visitare l'albero, controllare la razza dei cani presenti ed inserire in un vettore di stringhe l'elenco delle razze presenti, con la condizione che, se la razza è già presente il cane non deve essere inserito. La funzione deve restituire in numero di razze totale.
Ho un problema con l'inserimento delle razze all'interno del vettore di stringhe. Per chiarezza riporto prima il codice a cui faccio riferimento :

La funzione è questa :
codice:
int crea_elenco_razze(TTree tree, char elenco[][MAXCHAR]){
   bool ris;
   int n=0,l=0,r=0;
   if(tree!=NULL){
      l=crea_elenco_razze(tree->left,elenco);
      ris=verifica_presenza_cane(elenco,tree->info.satellite.razza);
      if(ris==true){
        inserisci_razza(elenco,tree->info.satellite.razza);
        printf("LUNGHEZZA %d RAZZA : %s\n", strlen(elenco[0]),elenco[0]);
        n=1;
        }
      r=crea_elenco_razze(tree->right,elenco);
      }
   return n+l+r;
   }
e le funzioni a cui faccio riferimento sono queste :

codice:
void inizializza_elenco(char elenco[][MAXCHAR]){
   int i;
   for(i=0;i<MAXCHAR;i++)
      elenco[0][i]='\0';
   }

bool verifica_presenza_cane(char elenco[][MAXCHAR], char razza[]){
   int i=0;
   bool flag=true;
   while(i<MAXCHAR && elenco[0][i]!='\0' && flag==true){
      if(strcmp(elenco[i],razza)==0)
         flag=false;
      i++;
      }
   return flag;
   }

void inserisci_razza(char elenco[][MAXCHAR], char razza[]){
   int i=0;
   while(elenco[0][i]=='\0'){
      i++;
      }
   strcpy(elenco[i],razza);
   printf("INSERITO ? %s\n", elenco[i]);
   }
Il mio problema sta nel fatto che la funzione "inserisci razza" inserisce effettivamente la razza, come mi conferma la printf con scritto "Inserito ?" mentre una volta tornato alla funzione principale (crea elenco razze) ed effettuando di nuovo la stampa (la seconda print con "LUNGHEZZA" e "RAZZA") mi esce che il cane non è stato inserito. Infatti la lunghezza della stringa mi da 0 e la funzione non stampa alcuna razza. Qualcuno mi può aiutare a trovare l'errore ?