我已经了解如何malloc
矩阵int**
。 但是使用typedef
,我认为有一个想法,但我不太确定。
typedef int LabeledAdjMatrix[SIZE][SIZE];
我这样做吗?
APSP = (APSPMatrix*)malloc(sizeof(APSPMatrix));
但是当我访问它时,我将不得不使用*APSP[0][0]
而我不知道如何在memset
/ memcpy
中使用它。
有没有正确的方法呢?两者都在动态分配和访问。
答案 0 :(得分:1)
我的建议是不使用数组typedef,它们使代码更难阅读,因为当数组指针衰减发生或不发生时它不太明显。
如果要分配连续数组,可以写:
int (*APSP)[SIZE] = malloc( sizeof(int[SIZE][SIZE]) );
然后将其作为APSP[0][0]
访问。
你的帖子谈论" malloc好像是int **
",我认为你的意思是你想要为每一行分别进行分配......但是你会写{{1并编写一个循环来分配每一行,它实际上与int **APSP
无关。