【发布时间】:2012-11-03 17:46:51
【问题描述】:
在我的项目中,我有这些文件:
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);
}
}
}
这确实有效,但我不喜欢这种方式...
有没有更好的方法?
谢谢!
编辑: 可以用向量模拟矩阵吗?
【问题讨论】:
-
这看起来相当 C-ish。请改用矩阵类。
-
是的,我知道我可以在课堂上做到这一点,但这是学校的家庭作业。
-
在 C 中,数组大小是编译时的事情,而数组语法只是让编译器进行乘法运算。如果您想要比第一个答案更花哨的东西,您应该使矩阵成为具有行数和列数以及指向数据的指针的结构。在 C++ 中,您可以在结构中添加辅助方法,在纯 C 中,它们必须是以结构或指向结构的指针作为参数的函数。
标签: c++ function pointers matrix