利用vector时出现“将一个无效参数传递给了将无效参数视为严重错误的函数”

问题遇到的现象和发生背景

我想利用向量计算行列式的值,但是每次运行都会出现“将一个无效参数传递给了将无效参数视为严重错误的函数”,我看了一下,我没有越界呀。所以请各位网友帮忙看一下我是哪里错了。

img

问题相关代码,请勿粘贴截图
#include<iostream>
#include<vector>

using namespace std;

int Det(vector<vector<int>> v_det)
{
    int n = v_det.size();  // 行列式的行和列

    if (n == 1) return v_det[0][0];
    if (n == 2) return (v_det[0][0] * v_det[1][1] - v_det[0][1] * v_det[1][0]);

    int det = 0;
    int a;
    int i, j;
    vector<vector<int>> v;  // 余子式
    vector<int> vec;
    
    for (int k = 0; k < v_det.size(); k++)
    {
        /*给代数余子式赋值*/
        for (i = 0; i < v_det.size() - 1; i++)
        {
            for (j = 0; j < v_det[0].size() - 1; j++)
            {
                if (j < k)
                    a = v_det[i][j];
                else
                    a = v_det[i][j + 1];

                vec.push_back(a);
            }
            v.push_back(vec);
            vec.clear();
        }

        /*计算行列式的值,按第一行展开,递归求得*/
        det += v_det[0][k] * Det(v) * (((2 + k) % 2) ? -1 : 1);

    }

    return det;
}

int main()
{

    vector<vector<int>> v;
    vector<int> vec;
    int n = 1;

    for (int i = 1; i <= 3; i++)
    {
        for (int j = 1; j <= 3;j++)
            vec.push_back(n++);

        v.push_back(vec);
        vec.clear();
    }

    cout << Det(v);

    return 0;
}
运行结果及报错内容

显示“将一个无效参数传递给了将无效参数视为严重错误的函数”

我想要达到的结果

看看能不能不出现这个错误

24行改为
for (j = 0; j < v_det[i].size() - 1; j++)

都用c++ 开发了,为什么不使用 引用呢?