次のように、構造体ポインタの配列を本体の関数に渡さなければならないプログラムを書いています。
struct node *vertices[20];
create_vertices (&vertices,20);
関数の実装はこのようなものです
void create_vertices (struct node *vertices[20],int index)
{
}
これでは、インデックス20の構造体ポインタの配列を渡す必要があります。メインの外部で行った宣言は次のとおりです。
void create_vertices(struct node **,int);
ただし、コードをコンパイルするたびに、これらの3行で問題が発生します。
bfs.c:26:6: error: conflicting types for ‘create_vertices’
bfs.c:8:6: note: previous declaration of ‘create_vertices’ was here
bfs.c: In function ‘create_vertices’:
bfs.c:36:15: error: incompatible types when assigning to type ‘struct node’ from type ‘struct node *’
私はこれをどのように行うべきか理解できません。私がしたいことは次のとおりです。
- mainで構造体ポインターの配列を宣言します(これはすでに行っています)。
- 配列のアドレスを関数に渡します(これが私が失敗した場所です)。
- メインの外で関数の正しいプロトタイプを宣言します。
コードはC上にある必要があり、私はLinuxでテストしています。誰かが私を指摘できますか?