使用typedef动态分配Matrix

时间:2016-10-10 05:50:23

标签: c

我已经了解如何malloc矩阵int**但是使用typedef ,我认为有一个想法,但我不太确定。

typedef int LabeledAdjMatrix[SIZE][SIZE]; 

我这样做吗?

APSP = (APSPMatrix*)malloc(sizeof(APSPMatrix));

但是当我访问它时,我将不得不使用*APSP[0][0]而我不知道如何在memset / memcpy中使用它。

有没有正确的方法呢?两者都在动态分配和访问。

1 个答案:

答案 0 :(得分:1)

我的建议是不使用数组typedef,它们使代码更难阅读,因为当数组指针衰减发生或不发生时它不太明显。

如果要分配连续数组,可以写:

int (*APSP)[SIZE] = malloc( sizeof(int[SIZE][SIZE]) );

然后将其作为APSP[0][0]访问。

你的帖子谈论" malloc好像是int **",我认为你的意思是你想要为每一行分别进行分配......但是你会写{{1并编写一个循环来分配每一行,它实际上与int **APSP无关。