这是
cout << "please input size: " ;
int m, n, i, j;
cin >> m >> n;
/*先分配指针数组*/
int **ary = new int*[m];
/*分配一维数组空间*/
for(i = 0; i < m; i++)
ary[i] = new int[n];
for(i = 0; i < m; i++)
for(j = 0; j < n; j++)
cin >> ary[i][j];
bool find = findNum(ary, m, n, 7);
cout << (find?"":"not ") << "found" << endl;
/*释放空间也是一维一维的释放*/
for(i = 0; i < m; i++)
delete[] ary[i];
delete[] ary;
这里顺便写上剑指offer中面试题三:二维数组中的查找
bool findNum(int **matrix, int rows, int columns, int number){
bool found = false;
if (matrix!=NULL && rows >0 && columns > 0)
{
int row = 0;
int column = columns - 1;
while(row <= rows && column >= 0){
if(matrix[row][column] > number)
column--;
else if(matrix[row][column] < number)
row++;
else{
found = true;
break;
}
}
/*while (row <= rows && column >= 0)
{
if (matrix[row*columns+column] > number)
column--;
else if(matrix[row*columns+column] < number)
row++;
else{
found = true;
break;
}
}*/
}
return found;
}
(注释的部分是第一个参数是一维数组时的代码)