2017-05-09 8 views
-1

Ich versuche also, eine Zeichenfolge rekursiv zu erstellen, aber ich kann es nicht funktionieren. Dies ist, wie ein Teil meines Code wie folgt aussieht:Rekursive Erstellung einer Zeichenfolge

void afiseaza(TRNod *nod,char *x,int niv,int w) 
{ 

    if(nod==NULL) 
     return; 
    int i; 

    *(x+niv)=w; 
    *(x+niv+1)='\0'; 
    // x[niv]=w,x[niv+1]='\0' 

    if(nod->sf==1) 
     printf("%s\n %d \n",x,niv); 
    niv++; 

    for(i=0;i<36;i++) 
    { 
     afiseaza(nod->fiu[i],&x,niv,i+87); 
    } 

} 

grundsätzlich TRNod ein Knoten eines Baumes ist, und wenn der Knoten zugeordnet ist, es entspricht einen Buchstaben im Alphabet.

+0

Und Sie setzen 'afiseaza' in eine Schleife – RoiHatam

+0

Sie müssen' niv' zweimal erhöhen. – jiveturkey

Antwort

0

Die Funktion nimmt ein char * (Zeiger-to-Zeichen) als zweites Argument ...

void afiseaza(TRNod *nod,char *x,int niv,int w) 

... aber du gibst ihm einen char ** (Zeiger-zu-Zeiger-to char):

Wirklich, sollte ein Compiler davor warnen, und der Programmierer sollte auf die Warnungen achten.

Verwandte Themen