Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/126.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 我能';t在C+中使用new+;功能建设_C++_Pointers - Fatal编程技术网

C++ 我能';t在C+中使用new+;功能建设

C++ 我能';t在C+中使用new+;功能建设,c++,pointers,C++,Pointers,我想在这个函数中为参数创建一个新的空间。 void Binary::PreAndMid(Qnode*root,char temp1[],char temp2[],int m,int n,int j,int k){ 如果(n-m!=k-j | m>n | j>k){ 回来 } 否则{ root=new Qnode;/*在其他函数中,root变为null*/ 根->val=temp1[m]; cout val LC,temp1,temp2,m+1,m+f-j,j,f-1); 前置和中间(根->RC

我想在这个函数中为参数创建一个新的空间。

void Binary::PreAndMid(Qnode*root,char temp1[],char temp2[],int m,int n,int j,int k){
如果(n-m!=k-j | m>n | j>k){
回来
}
否则{
root=new Qnode;/*在其他函数中,root变为null*/
根->val=temp1[m];
cout val LC,temp1,temp2,m+1,m+f-j,j,f-1);
前置和中间(根->RC,temp1,temp2,m+f-j+1,n,f+1,k);
}
}
}
结果是根为null。
这是因为您需要执行
*&root
,以便在末尾返回新的内存地址。现在,您正在违反规则决不在参数上使用赋值运算符。

这是因为您需要执行
*&root
,以便在最后返回新的内存地址。现在您正在违反规则,决不在参数上使用赋值运算符。

参数
作为指针的副本传入。从函数返回后,为该指针指定新值不会继续

如果要执行此操作,需要通过引用传递指针
root

Qnode*&root
,这将确保调用此函数的代码和函数本身使用相同的变量。

参数
root
作为指针的副本传入。从函数返回后,为该指针指定新值不会继续

如果要执行此操作,需要通过引用传递指针
root

Qnode*&root
,这将确保调用此函数的代码和函数本身使用相同的变量。

使用std::string,而不是char数组。使用std::string,而不是char数组。
void Binary::PreAndMid(Qnode* root, char temp1[], char temp2[], int m, int n, int j, int k) {
    if (n - m != k - j || m > n || j > k) {
        return;
    }
    else {
        root = new Qnode;  /*in other function the root is become null*/
        root->val = temp1[m];
        cout << root->val << endl;
        int f = Find(temp2, temp1[m]);
        if (f == -1) {
            return;
        }
        else {
            PreAndMid(root->LC, temp1, temp2, m + 1, m + f - j, j, f - 1);
            PreAndMid(root->RC, temp1, temp2, m + f - j + 1, n, f + 1, k);
        }
    }
}