C++ 加载时程序崩溃
我在编译时没有错误,但我的程序在启动后就崩溃了 我的源代码:C++ 加载时程序崩溃,c++,C++,我在编译时没有错误,但我的程序在启动后就崩溃了 我的源代码: #include <iostream> #include <vector> std::vector<int> recursivite(std::vector<int> source, int index, int length); int main() { std::vector<int> myTab {{ 1, 2, 3, 4,
#include <iostream>
#include <vector>
std::vector<int> recursivite(std::vector<int> source, int index, int length);
int main()
{
std::vector<int> myTab {{ 1, 2, 3, 4,
5, 6, 7, 8,
9, 10, 11, 12,
13, 14, 15, 16,
17, 18, 19, 20
}};
std::vector<int> myTab2{{0, 0, 0, 0}};
myTab2 = recursivite(myTab, 4, 4);
for (unsigned int i{}; i < myTab2.size(); ++i)
std::cout << myTab2[i];
}
std::vector<int> recursivite(std::vector<int> source, int index, int length)
{
std::vector<int> myTab = {length};
if (myTab.size() > 0)
{
myTab[length - 1] = source[index + length - 1];
recursivite(source, index, length - 1);
}
return myTab;
}
#包括
#包括
std::vector recursivite(std::vector source,int索引,int长度);
int main()
{
向量myTab{{1,2,3,4,
5, 6, 7, 8,
9, 10, 11, 12,
13, 14, 15, 16,
17, 18, 19, 20
}};
std::向量myTab2{{0,0,0,0};
myTab2=递归(myTab,4,4);
for(无符号整数i{};i
有人能找出它崩溃的原因吗?您的主要问题是,这一行可能无法完成您希望它完成的任务:
std::vector<int> myTab = {length};
使用大括号的版本从列出其元素的
std::initializer\u列表构建std::vector
。使用括号的版本会创建指定大小的std::vector
。我猜这是堆栈溢出错误,您看到了吗?如果是,请检查recursivite
函数的结束条件。就我所见,它将是一个无限递归。我可能错了。什么是std::vector myTab={length}代码>用于length
是一个int。如果(myTab.size()>0)
将东西添加到myTab
中,那么什么时候会不正确呢?我想这里有一个std::vector(args)
/std::vector{args}
混合了。unsigned int I{}
为什么?只是让人困惑。
std::vector<int> myTable(length);