gpt4 book ai didi

arrays - 二维动态数组指针访问

转载 作者:行者123 更新时间:2023-12-05 00:42:43 32 4
gpt4 key购买 nike

p = (int *)malloc(m * n * sizeof(int));

如果我使用p作为二维动态数组,如何访问里面的元素?

最佳答案

如果您可以依靠您的 C 实现来支持可变长度数组(可选功能),那么一个很好的方法是将 p 声明为指向(可变长度)数组的指针而不是指向 int:

的指针
int (*p)[n] = malloc(m * sizeof(*p));  // m rows, n columns

然后你使用普通的双索引访问元素,就像你声明一个普通的二维数组一样:

p[0][0] = 1;
p[m-1][n-1] = 42;
int q = p[2][1];

最广泛使用的 C 实现确实支持 VLA,但 Microsoft 是一个明显的异常(exception)。

关于arrays - 二维动态数组指针访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72424425/

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