Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Recursive struct [duplicate]

Do I need to use typedef in order to build recursive structs? I tried to use the following code without success:

struct teste
{
    int data;
    int data2;
    struct teste to_teste;
};
like image 487
user1843665 Avatar asked Dec 04 '22 01:12

user1843665


2 Answers

To build recursive structs you do not need typedef.

You will have to convert the struct object into a struct pointer object.

like this:

struct teste{
  int data;
  int data2;
  struct teste *to_teste;
};
like image 163
Aniket Inge Avatar answered Dec 23 '22 09:12

Aniket Inge


You CANNOT have the same structure inside itself. If you do that then size of that structure becomes indefinite. So that is not allowed.

Instead you can have a pointer to the same structure inside itself to solve your purpose. This will work because size of a pointer is known to the compiler and the structure has a definite size now.

like image 37
CCoder Avatar answered Dec 23 '22 09:12

CCoder