ポインタと配列
次のソースで、結果表示でポインタを使いたいのですが、うまくいきません。1件しか表示されないのです。
ポインタの扱いがおかしいのだと思いますが、どうしたらよいでしょうか?
#include <stdio.h>
#include <string.h>
int search(char key[256],FILE *fp,char *result[256][256]);
main(void)
{
FILE *fp;
int rep,n,i;
char x[256],key[256],*result[256][256];
printf("検索キーワードを入力してください。\n"
"キーワード>");
gets(key);
if((fp=fopen("personal.txt","r"))==NULL)
{
printf("ファイルをオープンできません\n");
exit(1);
}
printf("=====検索結果=====\n");
n=search(key,fp,result);
for(i=0;i<n;i++)
{
printf("%s\n",result[i]);
}
printf("検索結果:%d件です。\n",n);
fclose(fp);
}
int search(char key[256],FILE *fp,char *result[256][256])
{
int n=0;
char *p,word[256],*name;
while((p=fgets(word,256,fp))!=NULL)
{
if(strstr(word,key)!=NULL)
{
name=strtok(p," ");
strcpy(result[n],name);
n++;
}
}
return n;
}
実行すると、下の警告がでます。
illegal pointer combination(param)