将字符指针分配给字符指针数组

时间:2010-08-05 18:29:20

标签: c

在下面的代码中,我想把'pre'中的字符串复制到数组'word'中,以便我可以稍后打印数组'word',但它显示NONPORTABLE CONVERSION错误..尝试使用strcpy()来做它但是它工作。这样做的任何其他方式??我想在每次生成时将'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]);
 }
}

谢谢..

2 个答案:

答案 0 :(得分:1)

如果你想让word成为一个字符串数组,那么它应该被声明为:

 char **word; //and allocated accordingly

如果你想让单词成为pre的副本,你应该有更像

的东西
 word[j] = pre[j]; // in a loop, but using strcpy or strncpy would be just as good...

答案 1 :(得分:0)

如果我理解正确的问题......

您的NONPORTABLE CONVERSION错误是因为

word[j]=pre;

正在尝试将char*分配给char

你没有说出你的strcpy()没有用的东西,但是我假设你已经为char *word分配了任何内存,并且正在尝试复制到NULL。取而代之的是,

  word=(char*)malloc(strlen(pre)+1);
  if (word) strcpy(word,pre);