2014-11-28 3 views
0

У меня есть некоторые проблемы с этим кодом:Typedef указатель структуры других ЬурейиХ структур

typedef struct Product { 

    char product_code[5]; 
    int sells; 
    int sells_quantity; 
}p[3]; 

typedef struct Seller { 
    char seller_code[5]; 
    Product *ptr; 
}seller[5]; 

Почему это дает мне ошибку для Product *ptr?

+1

Почему ты меченый это C++? Компилятор C++ должен скомпилировать этот код просто отлично. В C вам понадобится 'struct Product * ptr;' – Praetorian

+0

Обратите внимание, что ваш первый 'typedef' определяет тип' struct Product' (более или менее случайно) и тип 'p', который представляет собой массив из 3 элементов типа' struct Product'. Аналогично, ваш второй 'typedef' пытается определить тип' продавец', который представляет собой массив из 5 элементов типа 'struct Seller'. –

ответ

1

Не могли бы вы попробовать заменить код

typedef struct Product { 

    char product_code[5]; 
    int sells; 
    int sells_quantity; 
}p[3]; 

С

typedef struct Product { 

    char product_code[5]; 
    int sells; 
    int sells_quantity; 
} Product;    // from here the structure type Product is recognized by the compiler. 
0

Вы можете сделать это:

typedef struct Product { 

char product_code[5]; 
int sells; 
int sells_quantity; 
}p[3],Product; 

typedef struct Seller { 
    char seller_code[5]; 
    Product *ptr; 
}seller[5]; 
Смежные вопросы