2016-07-15 24 views
0

ハッシュテーブルを実装しようとしていて、メインの中に "idx"を定義するまでは問題ありませんでした。さて、 "idx"はグローバル変数ではなくなったので、関数を呼び出すときに引数として使用する必要があります。 "警告:互換性のないポインタ型から 'index_createfrom'の引数3を渡します。C:互換性のないポインタ型のハッシュテーブル

この場合、関数を呼び出す正しい方法は何ですか?

#include <stdio.h> 
#include <string.h> 
#include <stdlib.h> 

#define SIZE_HASH_MAP 10 


struct index{ 
    char* info; 
    int line[30]; 
    struct index *next; 
}; 

typedef struct index Index; 


int index_createfrom(FILE* pointerToText, FILE* pointerToKey, Index **idx) 
{ 
    return 1; 
} 


int main() { 

    Index* idx[SIZE_HASH_MAP] = {NULL}; 

    FILE *pointerToText = fopen("text.txt", "r"); 
    FILE *pointerToKey = fopen("keyFile.txt", "r"); 

    int a = index_createfrom(pointerToText, pointerToKey, &idx); // warning here. 
} 

答えて

3

idxIndex**ので、&idxは(Index***と言うことである)Index**へのポインタです。

&idxではなくidxを渡す必要があります。

関連する問題