[英]Assigning character pointer to a character pointer array
在下面的這段代碼中,我希望將字符串“ pre”中的字符串復制到數組“ word”中,以便稍后可以打印數組“ word”,但它顯示了NONPORTABLE CONVERSION錯誤。 還有其他方法嗎?我想在每次生成時將“ pre”中存在的字符串存儲到數組中。
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]);
}
}
謝謝..
如果您希望word為字符串數組,則應將其聲明為:
char **word; //and allocated accordingly
如果您希望單詞只是pre的副本,則應該有一些類似的內容
word[j] = pre[j]; // in a loop, but using strcpy or strncpy would be just as good...
如果我理解正確的問題...
您的“非便攜式轉換”錯誤是因為
word[j]=pre;
試圖到指定char*
一個char
。
您沒有說出什么對您的strcpy()
無效,但是我假定,根據顯示的代碼,您沒有為char *word
分配任何內存,而是試圖將其復制為NULL。 代替,
word=(char*)malloc(strlen(pre)+1);
if (word) strcpy(word,pre);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.