C++ 函数返回二维数组

C++一个很头疼的事情就是只能返回一个值,想要返回多个值只能将这些值存在数组中,返回一个数组。

下面实现一个简单的返回二维数组的函数:

#include <iostream>
using namespace std;


int **func(int row,int col)
{	
	//初始化一个row*col的二维数组
	int **data = 0;
	data = (int**)new int*[row];   //建立row个一位数组
	for (int i = 0; i < row; i++)
	{
		*(data + i) = new int[col];   //每个一维数组的长度都是col
	}

	for (int i = 0; i < row; i++)
		for (int j = 0; j < col; j++)
			data[i][j] = i + j;     //随便定义元素

	return data;
}


int main()
{
	int row = 5;
	int col = 8;
	int **data = func(row, col);
	for (int i = 0; i < row; i++)
		for (int j = 0; j < col; j++)
		{
			if (j < col - 1)
				cout << data[i][j] << "\t";
			else
				cout << data[i][j] << endl;
		}		
	return 0;
}

输出:

0       1       2       3       4       5       6       7
1       2       3       4       5       6       7       8
2       3       4       5       6       7       8       9
3       4       5       6       7       8       9       10
4       5       6       7       8       9       10      11

其实这样用指针并不好,容易出现空指针、越界等问题。

上一篇:PY爬虫 | 爬取下厨房的本周最受欢迎


下一篇:mysql的binglog