将指针从函数返回到main

时间:2015-05-07 12:13:03

标签: pointers null

我想将指针值返回到我的main函数,但它只在本地工作,root = NULL的值在函数插入之外保持不变。

   node *insert(int number,   node *root ){



        if(root==NULL){
            root = new node;
            root->key = number;
            printf("%d", number);
            return root;
        } }

2 个答案:

答案 0 :(得分:0)

参数变量实际上是堆栈变量,由函数的调用者初始化。

当您指定" root = new node;"你是去当地的" root"

如何从main()调用insert()? 你可以:

node* newRoot = insert(x, oldRoot);

比"新节点"将被分配给newRoot。你甚至可以:

oldRoot= insert(x, oldRoot);

比"新节点"将被分配给oldRoot

但是你稍后会在删除所有这些内容时遇到麻烦...

答案 1 :(得分:0)

请注意,root正在返回,因此在main()中您应该这样称呼它:

node *root = insert(4711, nullptr);

我使用nullptr,因为这显然是C ++,我相信今天它应该如何拼写。