gpt4 book ai didi

c - 使用 typedef 动态分配 Matrix

转载 作者:行者123 更新时间:2023-11-30 15:05:14 26 4
gpt4 key购买 nike

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

typedef int LabeledAdjMatrix[SIZE][SIZE]; 

我要这样做吗?

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

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

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

最佳答案

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

如果你想分配一个连续的数组,你可以这样写:

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

然后以 APSP[0][0] 的形式访问它。

您的帖子讨论了“malloc 就像 int **”,我认为您的意思是您希望为每一行单独分配...但是您会写 int **APSP并编写一个循环来分配每一行,这实际上与[SIZE][SIZE]无关。

关于c - 使用 typedef 动态分配 Matrix,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39951988/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com