C++ 递归函数中的Qvector崩溃随机
我在使用QT creator时遇到了奇怪的问题。我在调用递归函数的for循环中使用最新版本的qt creator和Qvector函数(我也尝试了std::vector和相同的问题),例如: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
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;
}