所以我有一个在main和function命令中声明的树来修改它。 现在我的问题是我扫描一些数据和条件1运行,它存储数据很好。但是,当我运行条件2时,树被NULL覆盖并且之前存储的数据被擦除。如何保存数据?
typedef struct tree_s tree_t;
typedef struct {
int i;
char a*
}data_t;
struct tree_s {
data_t data;
tree_t *left;
tree_t *right;
};
int
main(int argc, char *argv[]) {
tree_t *tree = NULL;
command(input_data, tree);
return 0;
}
command(blablah){
if(condition1){
/*inserts data into tree*/
if(condition2){
/*uses data that has been inserted to print something*/
}
}
编辑:
void
command(struct_t *c, tree_t **tree) {
switch (*(c->input)) { /*c->input is a character array*/
case condition_one:
process_stock(c, tree);
break;
case condition_2:
process_print_stock(c, tree);
break;
default:
printf("Unrecognised top-level command!.\n");
}
}
答案 0 :(得分:0)
main(int argc, char *argv[])
{
tree_t *tree = NULL;
command(input_data, tree);
return 0;
}
从我在主要功能中看到的
tree_t *tree = NULL
你已经用“NULL”和函数
初始化了“tree” command(input_data, tree);
将其值“NULL”传递给“命令”函数。
将其替换为:
command(input_data, &tree);
并在命令函数中定义“tree”的值