所以我试图递归地建立一个字符串,但我无法使其正常工作。这就是我的代码的一部分的样子:

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);
    }

}


基本上,TRNod是树的节点,如果分配了该节点,则它对应于字母表中的一个字母。

最佳答案

该函数将char *(指针到字符)作为第二个参数...

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


...但是您给它一个char **(指针到指针到字符):

afiseaza(nod->fiu[i],&x,niv,i+87);


确实,编译器应对此发出警告,而程序员应注意这些警告。

08-17 00:16