Проблемы при создании двумерного динамического массива c++
Делаю основные функции для работы с двумерным динамическим массивом ,но при выполнении функции заполнения(fill_double_array()) получаю следующую ошибку
#include <iostream>
//работа с динамической памятью
//динамический массив
void make_double_array(int** arr,int rows, int cols);
void fill_double_array(int** arr,int rows,int cols);
void output_double_array(int** arr, int rows, int cols);
int main()
{
int rows, cols;
std::cin >> rows;
std::cin >> cols;
int** dinamic_arr = nullptr;
make_double_array(dinamic_arr, rows, cols);
fill_double_array(dinamic_arr, rows, cols);
output_double_array(dinamic_arr,rows,cols);
}
void make_double_array(int** arr, int rows, int cols) {
arr = new int* [rows];
for (int i = 0; i < rows; i++) {
arr[i] = new int[cols];
}
}
void fill_double_array(int** arr,int rows,int cols) {
for (int i = 0; i < rows; i++) {
for (int j = 0; j < cols; j++) {
std:: cin >> arr[i][j];
}
}
}
void output_double_array(int** arr, int rows, int cols) {
for (int i = 0; i < rows; i++) {
for (int j = 0; j < cols; j++) {
std::cout << arr[i][j] << "\t";
}
std::cout << std::endl;
}
}