[amirus] Re: GCC не компилит

  • From: Vladimir Alaev <scf@xxxxxxxxxxxxx>
  • To: amirus@xxxxxxxxxxxxx
  • Date: Tue, 12 Sep 2006 12:19:45 +0300

gcc 3.2.2 под линухом дает тот же результат. Ошибка в том, что ты сделал
typedef на MyStruct_t и приводишь к MyStruct *, а обявил переменную как
struct MyStruct_t *. Короче, когда используется typedef, указывать везде дальше
что это struct не нужно. Для того чтоб пример собрался достаточно


struct MyStruct_t *MyS;

заменить на

MyStruct_t *MyS;


4afc wrote:
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) съедает только так...



Other related posts: