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