关于C的OO编程,如何创建实例出来?

关于OOC(面向对象C编程),
看了一些别人的文章,有一点是确定的,就是利用C的结构体,来实现Java或者C++中类的功能,

但是如何用一个定义好的结构体,方便的创建出多个实例,以及随时赋值、传值?

比如目前要实现一个二叉树,用Java可以每次new一个节点,插入现有的树中,
在C中,如何实现?
据我目前了解,结构体赋值有很多限制,好像只可以在定义的时候赋值?
那我定义一个结构体,只能定义的同时赋值一次?
而我目前想做的是,定义一个结构体(比如树节点node),
用这个结构体(struct node)创建几十几百个实例出来,然后形成一棵树?

请问在C中怎么做?

我是C新手,Java用惯了,如果问题幼稚请包涵,谢谢!

[code="C"]#include

typedef struct
{
int data1;
int data2;
}Node, *Pointer;

void construct(Pointer pNode,int para1,int para2)
{
pNode->data1=para1;
pNode->data2=para2;
}

void main()
{

Pointer node1= (Pointer)malloc(sizeof(Node));

free(node1);//用完要释放

}[/code]

[code="C"]typedef struct

{
int data1;
int data2;
}Node;

Node *node1=new Node;
void construct(Node *node,int para1,int para2)
{
node->data1=para1;
node->data2=para2;
}
delete node1;//用完要释放[/code]

大体情况就是这个样子的,结构体的操作函数必须多一个指针参数了(没有this)。
要手动释放资源