【发布时间】:2019-03-17 23:48:20
【问题描述】:
我将一个矩阵作为浮点**指针传递给一个函数,这个函数唯一做的就是打印指针指向的矩阵中的元素。但是,print 语句中的元素都是 0。我怀疑我已经正确初始化了指针 xadjm。
#include <stdio.h>
#include <stdlib.h>
void which(float **adj_mat, int n) {
for (int tt=0; tt<n; tt++) {
for (int cc=0; cc<n; cc++) {
if (cc==(n-1)) {
printf("%f-\n", *(adj_mat+tt*n+cc));
} else {
printf("%f-", *(adj_mat+tt*n+cc));
}
}
}
}
int main() {
int n=5;
float adjm[5][5] = {{0.0, 1.0, 1.0, 0.0, 0.0}, {1.0, 0.0, 0.0, 1.0, 0.0}, {1.0, 0.0, 0.0, 1.0, 0.0}, {0.0, 1.0, 1.0, 0.0, 1.0}, {0.0, 0.0, 0.0, 1.0, 0.0}};
float **xadjm = (float**) adjm;
which(xadjm, n);
return(0);
}
执行代码的输出:
0.000000-0.000000-0.000000-0.000000-0.000000-
0.000000-0.000000-0.000000-0.000000-0.000000-
0.000000-0.000000-0.000000-0.000000-0.000000-
0.000000-0.000000-0.000000-0.000000-0.000000-
0.000000-0.000000-0.000000-0.000000-0.000000-
【问题讨论】:
标签: c pointers initialization parameter-passing