所以我试图通过一个打印出2D数组中的值 函数叫printArray,但每当我尝试时 它说,标识符" print"未定义..我确定我正在做某事 超级错误,所以任何指针都会非常感激:)。
此外,我尝试尽可能简单,没有指针或地址^^
#include "stdafx.h"
#include "iostream"
using namespace std;
int A[3][5];
class Matrix {
public:
Matrix() {
A[0][1] = 5;
A[1][2] = 3;
A[2][1] = 2;
A[3][4] = 10;
}
void printArray(int height, int width);
};
int main()
{
printArray(A[3][5]);
return 0;
}
void Matrix::printArray(int width, int height) {
for (int i = 0; i < width ; i++) {
for (int y = 0; y < height; y++) {
cout << A[i][y] << " ";
}
cout << endl;
}
}
答案 0 :(得分:3)
printArray
是类的成员函数。所以你需要一个类的实例来调用它。
Matrix m;
m.printArray(3, 5);
答案 1 :(得分:0)
是的,正如它所说的那样,在main()
你试图调用其他地方没有提及的函数print
。另外,即使它是,它可能会触发UB,因为你正试图用它的一个未存在的元素调用它到它的西北角的西北角(如果你只是指阵列本身,你不需要指定其维度,因为在表达式上下文中,方括号[]
表示元素索引,而不是数组维度。
你的printArray
接受两个参数,但是你用一个数组(非)元素作为参数来调用它。在您的情况下,它应该是printArray(3, 5);
。
答案 2 :(得分:0)
在main()
内,尝试:
int main()
{
Matrix a;
a.printArray(3, 5);
return 0;
}
我相信这段代码可以有更好的设计。另外,请检查A[3][4]
。在这种情况下,您的行索引不应超过2。
答案 3 :(得分:0)