指针兼容性混乱

时间:2018-04-12 18:37:18

标签: c

我已将文件读入字符串,将字符串存储到动态分配的数组中。到目前为止,程序运行正常。现在我尝试使用动态分配的数组来查找第一个字符串中第二个字符串的位置。

void findwordposition(char word[],int numrows,char*file[numrows])
{
 char **ptr,*pa;
 int i=0;

  for(i=0;i<numrows;i++)
   {
    ptr=&file[i];    
    pa=strstr(ptr,word)(Compiler error regarding pointer compatibility)
   }
 }

有人可以解释一下如何使用字符串函数的指针数组(自动和动态分配)以及指针兼容性错误背后可能的原因。

1 个答案:

答案 0 :(得分:1)

strstr声明为:

char *strstr( const char* str, const char* substr );

你需要传递一些可以转换为那些参数类型的东西。 ptr不是其中之一,因为其类型为char **

您可以使用

char *ptr,*pa;

...


ptr = file[i];    
pa = strstr(ptr, word);

删除编译错误。

希望代码中没有语义错误,程序在这些更改后运行正常。