[英]dereferencing pointer to incomplete type when accessing members of a struct pointer
我有以下示例代碼:
person.h
typedef struct person Person;
Person* makePerson(char* n, int i);
person.c
#include "person.h"
struct person {
char* name;
int age;
};
Person* makePerson(char* n, int i) {
Person person;
person.name = n;
person.age = i;
return &person;
}
main.c中
#include <stdio.h>
#include "person.h"
int main() {
Person* pp = makePerson("Mark",24);
printf("Person's name : %s\t Person's age : %d\n",pp->name, pp->age);
}
當我嘗試打印出對應於Person指針pp的名稱和年齡成員時,出現“將指針解引用為不完整類型”的錯誤。
我正在使用gcc-std = c99 -o main main.c person.c進行編譯
誰能給我一些指導? 謝謝
這行:
printf(“人名:%s \\ t人的年齡:%d \\ n”,pp->姓名,pp->年齡);
取消引用person
結構。 但是,您的.h
文件僅包含一個前向聲明。
將print函數放入person.c
,或將完整的struct
定義移至person.h
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.