C++ 中的二维动态数组
2D Dynamic array in C++
如果我使用以下代码在 C++ 中声明一个二维动态数组:
int *arr2D[2]; //allocating rows statically
for(int i=0;i<2;i++)
{
arr2D[i]=new int[6]; //for each row, 6 columns are dynamically allocated
}
那我应该如何使用循环在这个二维动态数组中输入和显示值?
(分配后在其中输入和显示值的动态数组遍历问题)
你应该使用循环输入数组并显示它:
int *arr2D[2];
for(int i = 0; i < 2; i++)
arr2D[i] = new int[6];
for(int i = 0; i < 2; i++)
for(int j(0); j < 6; j++){
std::cout << "arr2D[" << i << "][" << j << "]: ";
std::cin >> arr2D[i][j];
std::cout << std::endl;
}
for(int i = 0; i < 2; i++)
for(int j(0); j < 6; j++){
std::cout << "arr2D[" << i << "][" << j << "]: "
<< arr2D[i][j] << std::endl;
}
最后别忘了释放内存(分配给new
的内存必须由delete
释放):
for(i = 0; i < 2; i++)
delete[] arr2D[i];
如果我使用以下代码在 C++ 中声明一个二维动态数组:
int *arr2D[2]; //allocating rows statically
for(int i=0;i<2;i++)
{
arr2D[i]=new int[6]; //for each row, 6 columns are dynamically allocated
}
那我应该如何使用循环在这个二维动态数组中输入和显示值? (分配后在其中输入和显示值的动态数组遍历问题)
你应该使用循环输入数组并显示它:
int *arr2D[2];
for(int i = 0; i < 2; i++)
arr2D[i] = new int[6];
for(int i = 0; i < 2; i++)
for(int j(0); j < 6; j++){
std::cout << "arr2D[" << i << "][" << j << "]: ";
std::cin >> arr2D[i][j];
std::cout << std::endl;
}
for(int i = 0; i < 2; i++)
for(int j(0); j < 6; j++){
std::cout << "arr2D[" << i << "][" << j << "]: "
<< arr2D[i][j] << std::endl;
}
最后别忘了释放内存(分配给new
的内存必须由delete
释放):
for(i = 0; i < 2; i++)
delete[] arr2D[i];