Я передаю матрицу как плавающий ** указатель на функцию, и единственное, что делает эта функция, это печатает элементы, которые находятся в матрице, на которую указывает указатель.Однако все элементы равны 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-