利用new关键字生成动态二维数组并传递给函数
#include<iostream>
using namespace std;
int sum_apple(int **arr, int Size, int n);
int sum_apple1(const int(*arr)[4], int Size);
void show(int **arr, int Size, int n);
int main()
{
const int apple[3][4] = {
{1, 2, 3, 4},
{5, 6, 7, 8},
{9, 10, 11, 12}
};
int total = sum_apple1(apple, 3);
cout << total << endl;
int n = 4;
int m = 3;
int **arr = new int *[m];
for (int i = 0; i < m; i++)
{
arr[i] = new int[n];
}
for (int i = 0; i < m; i++)
{
for (int j = 0; j < n; j++)
{
arr[i][j] = i + j;
}
}
show(arr, m, n);
int total1 = sum_apple(arr, m,n);
cout << endl;
cout << total1;
for (int i = 0; i < m; i++)
{
delete[] arr[i];
}
delete[] arr;
return 0;
}
int sum_apple(int **arr, int Size,int n)
{
int total = 0;
for (int i = 0; i < Size; i++)
{
for (int j = 0; j < n; j++)
{
total += arr[i][j];
}
}
return total;
}
void show(int **arr, int Size, int n)
{
for (int i = 0; i < Size; i++)
{
for (int j = 0; j < n; j++)
{
cout << "arr[" << i << "][" << j << "] = " << arr[i][j] << " ";
}
cout << endl;
}
}
int sum_apple1(const int(*arr)[4], int Size)
{
int total = 0;
for (int i = 0; i < Size; i++)
{
for (int j = 0; j < 4; j++)
{
total += arr[i][j];
}
}
return total;
}
本文通过一个C++程序展示了如何使用new关键字动态创建二维数组,并将其传递给函数进行计算。主要涉及了动态内存分配、数组初始化及释放,以及函数参数传递。程序中包括了一个计算数组元素之和的函数,同时提供了展示二维数组内容的辅助函数。

被折叠的 条评论
为什么被折叠?



