#include typedef struct _Tree_tag { struct _Tree_tag* left; struct _Tree_tag* right; } Tree; Tree* generate_tree(int level) { if( level > 0 ){ Tree* new_tree = (Tree*)malloc(sizeof(Tree)); new_tree->left = generate_tree(level-1); new_tree->right = generate_tree(level-1); return new_tree; } else { return (Tree*)0; } } int main(int argc, char** argv) { int i; for(i = 0; i<100 ; i++){ Tree* root = generate_tree(20); } return 0; }