使用typedef动态分配Matrix

我已经知道如何在矩阵中使用malloc如果它是一个int**但是使用typedef ,我认为有一个想法,但我不太确定。

 typedef int LabeledAdjMatrix[SIZE][SIZE]; 

我这样做吗?

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

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

有没有正确的方法呢? 无论是动态分配还是访问。

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

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

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

然后以APSP[0][0]访问它。

你的post谈到“malloc好像它是int ** ”,我假设你的意思是你想要为每一行分别进行分配……但是你会写int **APSP并写一个循环来分配每一行,它与[SIZE][SIZE]无关。