Structures, Pointers and typedefs

vinsudhir's Avatar, Join Date: Jan 2008
Light Poster
Wanted to know if this is possible and if so what it means.

1 typedef struct tree{
2. int height;
3. int width;
4. int weight;
5. } banyan;

6. int main(){

7. banyan* count[2]; // This is the statement I am interested in

8. count[0].height = 100;
9. count[0].width = 10;

10. return 0;

}


I do know about typedefs. For eg, we can make an instance of the type tree. but what is the meaning of statement 7? where we are instantiating something of type banyan, which is actually something of type tree. banyan is just an instance isnt it?

The above program is just a sample. please let me know if something else has to be added for the above to make sense.

thanks
Salem's Avatar, Join Date: Nov 2007
Ambitious contributor
The typedef just creates an alias (a single word), for some other type. Some types in C can be fairly complicated and it gets tedious and error prone to keep writing them out in full.

> banyan* count[2];
Is no different to
struct tree* count[2];

banyan IS NOT a new type, nor an instance of a tree.

A typedef doesn't create anything new, it's just a different way of referring to something else which already exists.
vinsudhir's Avatar, Join Date: Jan 2008
Light Poster
thanks for the comments.
asadullah.ansari's Avatar, Join Date: Jan 2008
TechCake
Quote:
Originally Posted by vinsudhir
Wanted to know if this is possible and if so what it means.

1 typedef struct tree{
2. int height;
3. int width;
4. int weight;
5. } banyan;

6. int main(){

7. banyan* count[2]; // This is the statement I am interested in

8. count[0].height = 100;
9. count[0].width = 10;

10. return 0;

}


I do know about typedefs. For eg, we can make an instance of the type tree. but what is the meaning of statement 7? where we are instantiating something of type banyan, which is actually something of type tree. banyan is just an instance isnt it?

The above program is just a sample. please let me know if something else has to be added for the above to make sense.

thanks

First write any code in CODE BLOCK as per looking good and easily readable.
asadullah.ansari's Avatar, Join Date: Jan 2008
TechCake
You can say " 'banyan' is synonym of 'struct tree' " ..
asadullah.ansari's Avatar, Join Date: Jan 2008
TechCake
always use for code block.

Code:
.....
.....
.....
>>> For detail go to "code and guidlines" of this forum
vinsudhir's Avatar, Join Date: Jan 2008
Light Poster
Ok. Thanks for the comments.