在下面的代碼中,我想將'pre'中的字符串複製到數組'word',以便稍後可以打印數組'word',但它顯示NONPORTABLE CONVERSION錯誤。嘗試使用strcpy()做它,但它的功能。做任何其他方式?我想它生成的每一次出現在「前」的字符串存儲到一個數組..將字符指針分配給字符指針數組
void print(char *pre,struct dic * root,int depth)
{
int i=0,flag=0,int j=0;
char *word;
for(;i<27;i++)
{
if(root->node[i])
{
pre[depth]='a'+i;
flag=1;
print(pre,root->node[i],depth+1);
pre[depth]=0;
}
}
if(flag == 0)
{
pre[depth]=0;
printf("\n%s\n",pre);
//j is declared globally
***word[j]=pre;***
//printf("\nWord[%d]=%s\n",j,word[j]);
}
}
謝謝。
啊,我重新閱讀(在提交後立即),並看到代碼底部的註釋行。 @Matthieu是對的, static char **單詞; 是你想要的,malloc()/ realloc()對於原始字符串數組以及每個strcpy()所需的字符串都是必需的。請注意,如果您每次調用該函數時都將此數組構建到該數組上(如果僅在該函數中需要它),它應該是靜態的。 – Crwth 2010-08-05 20:06:26