我想用1D数组表示2D数组。函数将传递两个索引(x,y)和要存储的值。这两个标记将代表一维数组的单个元素,并进行相应设置。我知道一维数组需要具有arrayWidth×arrayHeight的大小,但是我不知道如何设置每个元素。
例如,如何区分(2,4,3)与(4,2,3)?我尝试将数组设置为x * y,但是2 * 4和4 * 2会在数组中产生相同的斑点,我需要它们有所不同。 问题来源于stack overflow
您需要确定数组元素是以行顺序还是列顺序存储,然后保持一致。http://en.wikipedia.org/wiki/Row-major_order
C语言对多维数组使用行顺序
要使用一维数组模拟此情况,请将行索引乘以宽度,然后按以下方式添加列索引:
int array[width * height];
int SetElement(int row, int col, int value) { array[width * row + col] = value;
}
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。