C [1]处一维的二维数组
我正在进行一个维护项目,在C源文件中发现了以下数组声明:C [1]处一维的二维数组,c,multidimensional-array,C,Multidimensional Array,我正在进行一个维护项目,在C源文件中发现了以下数组声明: char vectorFields [1][FIELD_SIZE]; char vectorValues [1][VALUE_SIZE]; 初始化为: strcpy(vectorFields [0], field); // where char field[128] strcpy(vectorValues [0], vals); // where char vals[128] 这个大小为[1]的二维声明是否有意义(优化、可读性等),
char vectorFields [1][FIELD_SIZE];
char vectorValues [1][VALUE_SIZE];
初始化为:
strcpy(vectorFields [0], field); // where char field[128]
strcpy(vectorValues [0], vals); // where char vals[128]
这个大小为[1]的二维声明是否有意义(优化、可读性等),或者它只是一个遗留代码,我可以安全地更新到一维数组并调整初始化代码?我可以想到几个可能的原因来解释这是如何发生的:
void foo(字符条[][字段大小],整数条)代码>
但是,如果您可以访问引用这些变量的所有地方,并且没有明显的限制,例如(2),那么我看不出有任何理由不合理地使用这种用法。Paul您是对的:在另一个应用复制粘贴编码方法的地方(遗憾的是,在这个项目中经常使用这种糟糕的做法)我发现可能是复制的源代码,其中行确实大于1。@Zac:不幸的是,这在任何有任何历史的代码库中都太常见了——即使大多数从事代码工作的人都是称职的,但总有“那个家伙”在公司任职期间(在他被提升到管理职位之前;-)污染了代码。