Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.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++ 递归函数中的Qvector崩溃随机_C++_Qt_Macos Mojave_Qvector - Fatal编程技术网

C++ 递归函数中的Qvector崩溃随机

C++ 递归函数中的Qvector崩溃随机,c++,qt,macos-mojave,qvector,C++,Qt,Macos Mojave,Qvector,我在使用QT creator时遇到了奇怪的问题。我在调用递归函数的for循环中使用最新版本的qt creator和Qvector函数(我也尝试了std::vector和相同的问题),例如: void add(bool in){ global_var.push_back(in) //Qvector<bool>, global varible return; } void start(int x,int y,int z){ for(int i=0;i<z;i

我在使用QT creator时遇到了奇怪的问题。我在调用递归函数的for循环中使用最新版本的qt creator和Qvector函数(我也尝试了std::vector和相同的问题),例如:

void add(bool in){
    global_var.push_back(in) //Qvector<bool>, global varible
    return;
}
void start(int x,int y,int z){
    for(int i=0;i<z;i++){
        if(i<z){
           add(true);
           start(x,y,z);
           start(x,y,z);
           return;
        }

    }
        add(false) 

    }
void添加(bool-in){
全局变量推回(in)//Qvector,全局变量
返回;
}
无效开始(整数x,整数y,整数z){

对于(inti=0;i我建议您在QVector中使用append来添加元素,它等于pus_back,因为QVector通常分配的内存比需要的要多

void add(bool in){
    global_var.append(in) //Qvector<bool>, global varible
    return;
}
void添加(bool-in){
全局变量append(in)//Qvector,全局变量
返回;
}
你的启动方法将永远循环。如何调用启动方法?z的值在每次调用中都不会改变,如果z=0,则条件不起作用

那么,您真正想要解决的问题是什么呢?

请提供一个示例,因为每次调用中z都没有改变,所以您的开始(x,y,z)将永远循环。程序堆栈将溢出并崩溃。您应该重新编写递归函数。您想要解决的问题是什么?
void add(bool in){
    global_var.append(in) //Qvector<bool>, global varible
    return;
}