我有一个array
谁的边界由另一个变量(不是常量)定义:
int max = 10;
int array[max][max];
现在我有一个使用它的函数array
,但我不知道如何将数组传递给函数。我该怎么做呢?
所以为了更清楚,我该如何做这个工作(我考虑过使用类,但变量max
是由用户输入定义的,所以我不能让数组成为类的成员,因为max
它必须是一个常量)
void function (int array[max][max])
{
}
提前致谢。
如果数组大小在函数中保持不变,您可以考虑使用指针和第二个参数作为数组大小。
void function(int *array, const int size)
{
}
如果你想改变函数的大小,你可能真的会考虑像 std::vector 这样的 std 实现。
#include <iostream>
using namespace std;
int main() {
int** Matrix; //A pointer to pointers to an int.
int rows,columns;
cout << "Enter number of rows: ";
cin >> rows;
cout << "Enter number of columns: ";
cin >> columns;
Matrix = new int*[rows]; //Matrix is now a pointer to an array of 'rows' pointers.
for(int i=0; i<rows; i++) {
Matrix[i] = new int[columns]; //the i place in the array is initialized
for(int j = 0;j<columns;j++) { //the [i][j] element is defined
cout<<"Enter element in row "<<(i+1)<<" and column "<<(j+1)<<": ";
cin>>Matrix[i][j];
}
}
cout << "The matrix you have input is:\n";
for(int i=0; i < rows; i++) {
for(int j=0; j < columns; j++)
cout << Matrix[i][j] << "\t"; //tab between each element
cout << "\n"; //new row
}
for(int i=0; i<rows; i++)
delete[] Matrix[i]; //free up the memory used
}