系统相关
首页 > 系统相关> > c – “动态分配的内存模拟多维数组”的正确术语?

c – “动态分配的内存模拟多维数组”的正确术语?

作者:互联网

前段时间我问了一个question,其中我被告知(在提交中)使用术语“多维数组”作为这样的结构:

int **a;

初始化如下:

a = malloc(n * sizeof(*a));
for (i = 0; i < n; ++ i)
    a[i] = malloc(m * sizeof(*a[i]));

是误导,这是“只是一个多维数组的模拟”.我不是英语母语人士,我很难搞清楚什么是正确的术语.不幸的是,抱怨这个术语的人自己也没有帮助.

果然,术语“多维阵列的仿真”太长,无法在文本/会话中实际使用.

总结一下:

>上述结构的正确术语是什么(特别是在C中,如果有所不同)?

问题:

>这种术语语言不可知吗?如果没有,例如在C中如何调用它?

注意:如果您的答案与参考文献相关联,我会很高兴.
编辑:我理解这个构造和int之间的区别[n] [m] ;.那不是问题.

更新

分配的内存不一定是常规的.这种结构更精确:

a = malloc(n * sizeof(*a));
for (i = 0; i < n; ++ i)
  if (needed[i])
    a[i] = malloc(m[i] * sizeof(*a[i]));
  else
    a[i] = NULL;

解决方法:

它是“数组(指向)数组”,该术语可以在各种语言中理解,并适用于元素数组的长度是否相等(方形AoAs)或不是(锯齿状的AoAs).

标签:c-3,c,arrays,terminology
来源: https://codeday.me/bug/20190723/1512331.html