2017-08-14 13 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()とstructsを使っていくつかのテストをしようとしていますが、テスターコードを実行しようとすると、構造体テストを定義します。構造体が型として定義されていません

+1

あなたのタイプは 'test'ではなく' struct 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; 

次の2つを組み合わせることができ、これは非常に一般的です:

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

これは非常に一般的です。 「構造体タグ」を省略できることに注意してください。

関連する問題