我是小BH 发表于 2021-3-21 12:40:12

函数返回值问题

int BuildTree(Tree T) {
        int Length;
        cin >> Length;
        if (Length) {
                char left, right;
                int* check;
                check = new int;
                for (int i = 0; i < Length; i++)
                        check = 0;
                for (int i = 0; i < Length; i++) {
                        cin >> T.Element >> left >> right;
                        if (left != '-') {
                                T.Left = left - '0';
                                check.Left] = 1;
                        }
                        else
                                T.Left = NULL;
                        if (right != '-') {
                                T.Right = right - '0';
                                check.Right] = 1;
                        }
                        else
                                T.Right = NULL;
                }
                for (int i = 0; i < Length; i++)
                        if (!check)
                                return i;
        }
        else
                return NULL;
}



在vs2019中有warning:不是所有的控件路径都有返回值
我把最后的else删掉就不会有这个warning

有没有hxd能告诉我为什么,感觉有没有else效果都一样

rt3 发表于 2021-3-21 14:18:26

本帖最后由 rt3 于 2021-3-21 14:20 编辑

最后的else段改成返回-1试试,NULL 是返回指针值用的

我是小BH 发表于 2021-3-21 16:47:43

rt3 发表于 2021-3-21 14:18
最后的else段改成返回-1试试,NULL 是返回指针值用的

我在最开始#define NULL -1了

rt3 发表于 2021-3-23 08:47:47

具体的warning信息是什么
页: [1]
查看完整版本: 函数返回值问题