我正在尝试解决一个需要使用2D数组的问题,该数组的大小是从txt文件读取的。为了创建2D数组,“ V”需要const int,随后的V需要传入print函数,这意味着它在我的实现中也必须是全局的。有什么可能的解决方案?
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;
}