簡體   English   中英

將字符指針分配給字符指針數組

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM