Выделение памяти под динамическую матрицу в функции

Пытаюсь выделить память под матрицу в функции, логика такая: сначала я ввожу количество строк и столбцов, инцилизирую пустой указатель вне функции, а далее в функции должна выделиться память под матрицу. При этом функция не должна ничего возвращать и все выделение памяти должно происходить внутри функции. Однако при дальнейшем использовании матрицы выдает ошибку: Exception thrown: read access violation., что я делаю не так?

#include <iostream>
#include <cstdlib>

void memory(double** matrix, int n_row, int n_col) {
    matrix = new double* [n_row];
    for (int i = 0; i < n_row; ++i)
        matrix[i] = new double[n_col];

int main()
{
    int n_row{}, n_col{};
    scanf("%d %d", &n_row, &n_col);
    double** matrix{};
    memory(matrix, n_row, n_col);
}

Ответы (0 шт):