传递二维数组

Posted kazama

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了传递二维数组相关的知识,希望对你有一定的参考价值。

int m[][4] = { 
		{0,0,0,1},
		{1,0,0,1},
		{0,0,1,0} };

	
Mtriple<int> t(3, 4, (int*)m);

  在传递任意行和列的二维数组时,可以采取在main函数中写成上述形式的方法

而头文件中写的函数要通过地址找到值

template<class DataType>
inline Mtriple<DataType>::Mtriple(int mrow,int mcol, DataType *m)
{    int cnt=0;
        this->mrow = mrow;
	this->mcol = mcol;
	for (int i = 0; i < mrow; i++) {
		for (int j = 0; j < mcol; j++) {
			if (*(m+i*mcol+j) != 0) {
                            this->data[++cnt].row = i+1;
			    this->data[cnt].col = j+1;
			    this->data[cnt].e = *(m + i * mcol + j);
			    cout << this->data[cnt].row << " " << this->data[cnt].col << " " << this->data[cnt].e << endl;
			}
		}
	}
	
}                

  当然固定行列的写法只需要main 函数里

fun(m);

函数里

void fun(int m[3][4]) {
	for (int i = 0; i < 3; i++)
		for (int j = 0; j < 4; j++)
			cout << m[i][j];
}

  

 

以上是关于传递二维数组的主要内容,如果未能解决你的问题,请参考以下文章

在 C/C++ 中传递二维数组时出错

通过片段之间的导航传递数据android studio

传递二维结构数组

如何将二维数组传递给函数[重复]

php 二维数组传递给 js 问题解决记录

将二维数组索引传递给函数?