我有一个array
,其边界由另一个变量(不是常量)定义:
int max = 10;
int array[max][max];
现在我有一个使用array
的函数,但我不知道如何将数组传递给函数。我该怎么做?
所以为了使它更清楚,我如何使这项工作(我考虑使用类,但变量max
由用户输入定义,所以我不能使数组成为类的成员因为max
必须是常数)
void function (int array[max][max])
{
}
提前致谢。
答案 0 :(得分:0)
如果数组大小在函数中保持不变,您可以考虑使用指针加上数组大小的第二个参数。
void function(int *array, const int size)
{
}
如果你想改变函数的大小,你可能真的会考虑像std :: vector这样的std实现。
答案 1 :(得分:0)
#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
}