#include<iostream>
void func(int x, int y)
{
// initialising
int **matrix = new int *[x];
for (int i = 0; i < x; i++)
{
matrix[i] = new int[y];
}
// filling with 0
for (int row = 0; row < x; row++)
{
for (int cols = 0; cols < y; cols++)
{
matrix[row][cols] = 0;
}
}
// printing
for (int i = 0; i < (x); ++i)
{
for (int j = 0; j < (y); ++j)
{
std::cout << (matrix[i][j]) << ", ";
}
std::cout << std::endl;
}
std::cout << "test2" << std::endl;
for(int i = 0; i < x; i++)
delete[]matrix[i]; // clean up each y
delete[]matrix; // clean up x
}
int main()
{
func(5, 5);
}
Ваш массив x должен быть только длиной x.каждый из ваших указателей x указывает на массив длиной y.при вызове new [] вы должны вызывать delete [] для каждого указателя, выделенного new [], чтобы предотвратить утечки памяти.Вот проверка кода https://ideone.com/UL2IJn