我正在使用动态2D数组。
我想在结构中实现一个图形,所以我可以这样调用:
initialize(&costs);
initialize(&pred);
图形结构为G = [ COSTS[1:n,1:n], pred[1:n, 1:n], n]
,其中n
是顶点数。
这就是我所拥有的:
#include <stdio.h>
#include <stdlib.h>
int main(){
int **matrix = NULL;
int n = 0;
int i, j;
scanf("%d", &n);
matrix = (int**)calloc(n, sizeof(int*));
// matrix is now an array of pointers to integers, which can be used as an array of integer arrays, hence a 2d matrix
for (i = 0; i < n; i++) {
// create an array for each ith element of matrix;
matrix[i] = (int*)calloc(n, sizeof(int));
}
for (i = 0; i < n; i++) {
for (j = 0; j < n; j++) {
matrix[i][j] = 0; //initialize values
}
}
}
你能建议怎么做吗?
答案 0 :(得分:0)
所以你想要一个包含两个矩阵的结构?您也可以将n
放入其中,这样就可以了:
typedef struct {
int n;
int **cost;
int **pred;
} graph;
依次使用您在每个矩阵上编写的初始化代码。如果这是C,则不要转换malloc()
的返回值。