簡體   English   中英

訪問結構指針的成員時將指針取消引用為不完整類型

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM