此刻我正在努力
void avg(everything)
但这给了我错误:
error: subscripted value is neither array nor pointer
当我今天早些时候收到此错误时,这是因为我没有正确地将 2D 数组传递给函数。所以我认为这是相同的,但我找不到正确的格式来传递它。
这是我的类型定义:
typedef struct structure
{
char names[13][9];
int scores[13][4];
float average[13];
char letter[13];
} stuff;
这是我的 typedef 数组:
stuff everything[13];
在函数签名中,您需要指定类型,而不是要传入的变量的具体名称。此外,如果您想传递数组,则需要传递指针(您可能应该通过指针传递结构体)无论如何,否则每次调用该函数时都会生成数据的副本)。因此你的函数应该是这样的:
void avg(stuff* s);
然而,C 数组也没有长度的概念。因此,您应该始终将数组的长度传递给函数:
void avg(stuff* s, size_t len);
然后您可以这样称呼它:
avg(everything, 13);
此外,如果该函数不以任何方式修改数据,您应该通过指定参数来表示这一点const
:
void avg(const stuff* s, size_t len);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)