使用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]
无关。