我有一个数组声明为 C 中结构的成员。该数组声明为:
char mValue[MAXROWS][MAXCOLUMNS];
where MAXROWS
and MAXROWS
是 300。有更好的方法吗?我的意思是,我应该将它们声明为指针吗?
Thanks!
正如之前的海报所建议的,一个好方法是创建一个线性数组,然后“将其转换为二维”。很多时候,缓存 2D 指针可以大大提高使用该数组的程序的速度,如下所示:
mystruct *p = (mystruct*)calloc(ROWS * COLUMNS, sizeof(mystruct));
mystruct **p2 = (mystruct**)calloc(ROWS, sizeof(mystruct*));
for (int i = 0; i < ROWS; i++)
p2[i] = p + i*COLUMNS;
然后,您可以通过以下方式简单地访问 2D 元素:
p2[row][column] = foo;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)