2016-07-15 2 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

idx 정도로 &idx은 (a Index***라고한다)를 Index** 포인터이다하는 Index**이다.

&idx 대신 idx을 전달해야합니다.