所以我试图递归地建立一个字符串,但我无法使其正常工作。这就是我的代码的一部分的样子:
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);
确实,编译器应对此发出警告,而程序员应注意这些警告。