二维动态数组指针访问

柔软的
p = (int *)malloc(m * n * sizeof(int));

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

繁荣

我假设m是列数,而n是行数(如果相反,您可以在我的答案中使用 n 而不是 m )。
为了访问 2D 数组,您需要 2 个索引 - 我们称它们为xy索引
x将在0 .. m-1范围内,
y索引将在0 .. n-1范围内

您可以通过p以下方式计算数组的索引:

int p_idx = y * m + x

然后您可以通过以下方式访问您的数组元素:

p[p_idx] = 111;   // set an element value
int a = p[p_idx]; // get an element value

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章