我在网上做运动,所以我遇到了一些问题。
我不知道代码中的问题在哪里。当我运行代码时,它会返回Segmentation fault
!
我的代码如下:
#include <iostream>
using namespace std;
int main() {
int n, q, buff;
int k[100000], i[100000], j[100000], a[100000][300000];
int c;
cin >> n >> q;
for(buff=0; buff<n; buff++) {
cin >> k[buff];
//array
for(c = 0;c < k[buff]; c++) {
cin >> a[buff][c]; // <-- I think problem is here!
}
}
for(buff = 0; buff < q; buff++) {
cin >> i[buff];
}
for(buff = 0; buff < q; buff++) {
cin >> j[buff];
}
return 0;
}
请帮帮我!抱歉我的英文。
答案 0 :(得分:1)
在堆栈中使用如此大的数组会导致堆栈溢出。请参阅Getting a stack overflow exception when declaring a large array。
改为使用std::vector<int> k{100000};
std::vector<int> i{100000};
std::vector<int> j{100000};
std::vector<std::vector<int>> a{100000, std::vector<int>{300000}};
。
public function destroy($id)
{
$post = Post::find($id);
$post->delete();
//redirect to
return redirect()->back();
}
答案 1 :(得分:0)
您正在尝试创建一个 30000000000整数的数组 考虑到64位系统, int = 4字节的大小,因此所需的总大小约为 120 GB ,这在系统堆栈中不可用。
这是堆栈溢出错误的原因。
解决方案,在这种情况下使用向量而不是数组。