将 2D 数组传递给大小为变量的功能

Passing 2D array to funcion which size is a variable

本文关键字:小为 变量 功能 2D 数组      更新时间:2023-10-16

我正在尝试解决一个问题,我需要使用从 txt 文件中读取大小的 2D 数组。为了创建一个 2D 数组"V"需要 const int,后来 V 需要传入打印函数,这意味着它在我的实现中也必须是全局的。对此有什么可能的解决方案?

void printAdjMatrix(int arr[][V])
{
for (int i = 0; i < V; i++)
{
for (int j = 0; j < V; j++)
{
printf("%d ", arr[i][j]);
}
printf("n");
}
}
int main()
{
fstream in("in.txt", ios::in);
int vort;
in >> vort;
const int V = vort;
int adjMatrix[V][V]; //error: expression must have a constant value
printAdjMatrix(adjMatrix);
}

这对你有用吗?

void printAdjMatrix(int* square_mat, int dim)
{
for (int i = 0; i < dim; i++)
{
for (int j = 0; j < dim; j++)
{
printf("%d ", square_mat[i*dim + j]);
}
printf("n");
}
}
int main()
{
fstream in("in.txt", ios::in);
int vort;
in >> vort;
const int V = vort;
int* adjMatrix = new int[V*V](); //Use std::unique_ptr if possible
printAdjMatrix(adjMatrix, V);
delete[] adjMatrix;
}