如何製作結構矩陣或指向結構的指針矩陣?矩陣a
中的元素應該是Area
類型的結構。C中的結構矩陣
這是我到目前爲止已經試過:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
typedef struct {
char type_toy[20];
int nr;
char town[20];
char direction;
} Area;
void AllocMatrix(int N, int M, Area** a) {
int i;
a = malloc(N * sizeof(Area *));
for (i = 0; i < N; i++) {
a[i] = calloc(M, sizeof(Area*));
}
}
int main() {
int N, M;
Area** a;
printf("N = ..., M = ...");
scanf("%d %d", &N, &M);
AllocMatrix(N, M, a);
for (i = 0; i < N; i++) {
for (j = 0; j < M; j++) {
scanf ("%s", &a[i][j].town);
scanf ("%s", &a[i][j].type_toy);
scanf ("%d", &a[i][j].nr);
scanf ("%s", &a[i][j].direction);
}
}
return 0;
}
需要'A [1] =釋放calloc(M,的sizeof(面積)); '因爲你正在爲'i'行中的'M'矩陣分配內存 – vsoftco
很多時候,在C中,將矩陣表示爲一維數組是值得的(可能是作爲最後的*靈活數組成員*結構')並訪問他們與例如一個宏#define matrix_at(m,i,j)m [(i)* width +(j)]' –