2017-08-14 120 views
-2
struct test { 
    int id_number; 
    int age; 
}; 

test *tester() { 
    struct test *test1 = malloc(sizeof(test)); 
    test1->id_number = 10; 
    test1->age = 1; 
    return test1; 
} 

int main() 
{ 
    test *tester = function(); 
    printf("%d %d \n",tester->id_number tester->age); 
} 

所以我試圖做一些測試使用malloc()和結構,但是當我嘗試運行我的測試代碼中,我得到一個錯誤說未知類型的測試,但是我是定義結構測試。結構沒有被定義爲類型

+1

你的類型爲'結構test',不'test'。 – spectras

回答

0

當引用一個struct類型,你需要使用struct關鍵字:

struct test *tester() { 
    ... 
} 

如果你希望能夠使用test作爲一個類型,你需要一個typedef

typedef struct test { 
    int id_number; 
    int age; 
} test; 
0

該類型被稱爲struct test,除非您添加一個typedef

typedef struct test test; 

您可以將二者結合起來,這是很常見的:

typedef struct { 
    int id_number; 
int age; 
} test; 

這是很常見的;注意「結構標籤」可以省略。

相關問題