gpt4 book ai didi

C++ 免费() : invalid next size (fast)

转载 作者:行者123 更新时间:2023-11-28 01:57:38 26 4
gpt4 key购买 nike

我看过类似的问题(例如 thisthisthis ),但我还是想不通。在一些测试用例中,我遇到了错误并且无法理解它。我得到的错误是:

free(): invalid next size (fast)

我的代码使用 Robot Coin Collection 算法。我的实现如下:

int collectTens( vector< vector<int> > grid ) {

vector<vector<int>> result(grid.size(), vector<int>(grid.size(), 0));
int rows = grid.size();
int cols = grid[0].size();

for (int i = 0; i < rows; i++) {
for (int j = 0; j < cols; j++) {
if (grid[i][j] % 10 != 0) {
grid[i][j] = 0;
}
}
}

result[0][0] = grid[0][0];

for (int k = 1; k < cols; k++) {
result[0][k] = result[0][k - 1] + grid[0][k];
}

for (int i = 1; i < rows; i++) {
result[i][0] = result[i - 1][0] + grid[i][0];
for (int j = 1; j < cols; j++) {
result[i][j] = max(result[i - 1][j], result[i][j - 1]) + grid[i][j];
}
}

cerr << result[rows - 1][cols - 1] << endl;

return result[rows - 1][cols - 1];
}

在发生错误的测试用例中,可以使用stderr输出结果,但由于错误将无法返回任何内容。这部分对我来说没有意义,因为它在 2D vector 中的位置相同。

最佳答案

线

vector<vector<int>> result(grid.size(), vector<int>(grid.size(), 0));

创建方形网格,而不是矩形网格。您可能打算使用:

vector<vector<int>> result(grid.size(), vector<int>(grid[0].size(), 0));
^^^^

我建议使用:

int rows = grid.size();
int cols = grid[0].size();
vector<vector<int>> result(rows, vector<int>(cols, 0));

关于C++ 免费() : invalid next size (fast),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40602318/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com