我已声明:
#include stdio.h
#include stdlib.h
#include string.h
#include dictionary.h
int main( int argc, char ** argv ){
char * dictionary_name = DEFAULT_DICTIONARY;
dictionary_t dictionary;
dictionary->entries = 1;
if ( dictionary == NULL){
printf("NULL\n");
return -1;
}
return 0;
}
错误:
src/main.c: In function ‘main’:
src/main.c:40:12: error: dereferencing pointer to incomplete type ‘struct dictionary_s’
dictionary->entries = 1;
在dictionary.c中:
#include dictionary.h
struct dictionary_s{
char * name;
llist_t content;
int entries;
};
在 header (dictionary.h)中:
typedef struct dictionary_s* dictionary_t;
这是我第一次在这里提问,所以,如果我遗漏了一些重要的内容,请原谅我。
最佳答案
文件dictionary.h
仅包含类型structdictionary_s
的名称,因此这就是您的main
函数可见的全部内容。这意味着它不知道该结构包含什么。
您需要将structdictionary_s
的定义移动到头文件中。这样就可以从 main
中使用它。
关于c - 取消引用指向不完整类型的指针 [处理结构],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53267927/