LINUX.ORG.RU

Указатель на структуру при объявлении этой структуры - как?


0

0
Есть структура, в которой один из членов - указатель на другую структуру этого же типа.

Грубо говоря вот например:

typedef struct {

int klass;
char name[20];
int *next_member_ptr;

} mystruct_teg;

Хотелось бы вместо последнего int прописать mystruct_teg *next_member_ptr, но компайлер ругается грубо.
В принципе хитрых сложений-вычитаний я с этим указателем производить не буду, поэтому может сойти и интовый, но хочется порядка и отсутствия варнингов во время компиляции (incompatible pointer type).
Менять тип в коде тоже не хочется.
Вроде как мне сказали, что должна проходить эта конструкция, но не проходит.
В чем может быть дело? Может опции какие компилятору надо дать? (gcc)

Если кто ответит - заранее спасибо!
anonymous
Если чистый C, то

typedef struct mystruct_tag{ 
  int klass; 
  char name[20]; 
  struct mystruct *next_member_ptr; 
} mystruct;
Havoc ★★★★
()
Not sure - you are still referencing to the same structure name before
defining it completely. The way it may work should be:

struct mystruct_tag;

typedef struct mystruct_tag {
int klass;
char name[20];
struct mystruct_tag *next_member_ptr;
} mystruct;


AFAIK.
BaT ★★★★★
()
BaT, я же написал программку и откомпилировал, прежде чем отвечать :)
Havoc ★★★★
()
Havoc, да, это я нагнал - для указателей не нужно неполное декларирование... Сорри :)
BaT ★★★★★
()
Заработало, 10х! 8=)
anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.