gcc 3.2.2 под линухом дает тот же результат. Ошибка в том, что ты сделал
typedef на MyStruct_t и приводишь к MyStruct *, а обявил переменную как
struct MyStruct_t *. Короче, когда используется typedef, указывать везде
дальше
что это struct не нужно. Для того чтоб пример собрался достаточно
struct MyStruct_t *MyS;
заменить на
MyStruct_t *MyS;
Hello All,
Подскажите почему у меня иногда не компилятся следующие примеры: //========= File TST.c Start ================== typedef struct { char A,B,C; } MyStruct_t;
int main(int argc, char **argv) { char A,B,C; struct MyStruct_t *MyS;
MyS=(MyStruct_t *)malloc(sizeof(MyStruct_t));
A=MyS->A;
free(MyS); } //========= File TST.c End ==================
4afc:> gcc -c TST.c TST.c: In function `main': TST.c:10: warning: assignment from incompatible pointer type TST.c:12: dereferencing pointer to incomplete type
Причём любой другой GCC (QNX, AVR,ARM) съедает только так...