C++ 申请一个动态三维数组

#include<iomanip>
#include <iostream>
using namespace std;
int main()
{
	int i,j,k;  
	int nWidth,nHeight,nThird;  
  
	cin>>nThird>>nHeight>>nWidth;  
  
	/***声明一个三维数组***/
	int ***grayScale = new int ** [nThird];  
	for (i = 0;i < nThird;i++)  
	{  
		grayScale[i] = new int*[nHeight];  
		for (j = 0;j < nHeight;j++)  
		{  
			grayScale[i][j] = new int [nWidth];  
		}  
	}  
	/***将数组元素都赋值为1***/
	for (k = 0;k < nThird;k++)  
	{  
		for (j = 0;j < nHeight;j++)  
		{  
			for (i = 0;i < nWidth;i++)  
			{  
				grayScale[k][j][i] = 1;  
			}  
		}  
	}  
	/***打印数组元素***/
	cout<<setw(5);  
	for (k = 0;k < nThird;k++)  
	{  
		for (j = 0;j < nHeight;j++)  
		{  
			for (i = 0;i < nWidth;i++)  
			{  
				cout<<grayScale[k][j][i]<<setw(5);  
			}  
			cout<<endl;  
		}  
		cout<<endl;  
	}
	/***释放内存***/
	for (j = 0;j < nThird;j++)  
	{  
		for (i = 0;i < nHeight;i++)  
		{  
			delete []grayScale[j][i];  
		}  
	}  
	delete []grayScale;  
	return 0;
}

转载于:https://www.cnblogs.com/Vulkan/archive/2012/09/03/7530273.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是用C++编程实现动态数组申请和释放,以及将数组元素的值赋值为下标的组合,并求每个数组的元素之和的代码: ```c++ #include <iostream> using namespace std; int main() { // 动态一维数组a(100) int *a = new int[100]; int sum_a = 0; for (int i = 0; i < 100; i++) { a[i] = i; sum_a += a[i]; } cout << "sum_a = " << sum_a << endl; delete[] a; // 动态二维数组b(20×25) int **b = new int*[20]; int sum_b = 0; for (int i = 0; i < 20; i++) { b[i] = new int[25]; for (int j = 0; j < 25; j++) { b[i][j] = i * 25 + j; sum_b += b[i][j]; } } cout << "sum_b = " << sum_b << endl; for (int i = 0; i < 20; i++) { delete[] b[i]; } delete[] b; // 动态三维数组c(9×8×5) int ***c = new int**[9]; int sum_c = 0; for (int i = 0; i < 9; i++) { c[i] = new int*[8]; for (int j = 0; j < 8; j++) { c[i][j] = new int[5]; for (int k = 0; k < 5; k++) { c[i][j][k] = i * 100 + j * 10 + k; sum_c += c[i][j][k]; } } } cout << "sum_c = " << sum_c << endl; for (int i = 0; i < 9; i++) { for (int j = 0; j < 8; j++) { delete[] c[i][j]; } delete[] c[i]; } delete[] c; // 动态二维数组d(m×n,m和n由键盘输入,可以输入25和20) int m, n; cout << "Please input m and n: "; cin >> m >> n; int **d = new int*[m]; int sum_d = 0; for (int i = 0; i < m; i++) { d[i] = new int[n]; for (int j = 0; j < n; j++) { d[i][j] = i * n + j; sum_d += d[i][j]; } } cout << "sum_d = " << sum_d << endl; for (int i = 0; i < m; i++) { delete[] d[i]; } delete[] d; return 0; } ``` 注意:以上代码中的申请和释放动态数组的方式是使用new和delete,也可以使用malloc和free,但是要注意对应的数据类型和释放方式。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值