在我的项目中我有这些文件:
functions.h
functions.cc
main.cc
我试图以这种方式将Matrix传递给函数作为指针:
main.cc
// Size -> const short Size = 10;
int mtr1[Size][Size];
matrix_insert((int *)mtr1);
functions.h
void matrix_insert(int *mtr);
functions.cc
void matrix_insert(int *mtr) {
short i, j;
for (i = 0; i < Size; i++) {
for (j = 0; j < Size; j++) {
std::cin >> *(mtr + i * Size + j);
}
}
}
这实际上有效,但我不喜欢这种方式......
有更好的方法吗?
谢谢!
编辑: 可以用向量模拟矩阵吗?
答案 0 :(得分:1)
如果你真的想使用C数组,那么可以按如下方式进行:
<强> main.cc 强>
int mtr1[Size][Size];
matrix_insert(mtr1);
<强> functions.h 强>
const short Size = 10;
void matrix_insert(int mtr[Size][Size]);
<强> functions.cc 强>
void matrix_insert(int mtr[Size][Size]) {
short i, j;
for (i = 0; i < Size; i++) {
for (j = 0; j < Size; j++) {
std::cin >> mtr[i][j];
}
}
}
答案 1 :(得分:1)
答案 2 :(得分:1)
您可以使用模板执行此操作:
template<int Size>
void matrix_insert(int (&mtr)[Size][Size])
{
short i, j;
for (i = 0; i < Size; i++)
{
for (j = 0; j < Size; j++)
{
std::cin >> mtr[i][j];
}
}
}