我有像这样的Scala代码
var i = 1
for(e <- array) {
acc += e * i
i += 1
}
Run Code Online (Sandbox Code Playgroud)
我需要将数组中的第一个元素乘以1,将下一个元素乘以2,将下一个元素乘以3,然后将它们全部添加到累加器中.我觉得在Scala中有更好的方法,甚至可以折叠?
我有一个以这种方式定义的结构.
typedef struct COUNTRY {
char Code[3];
char Country[30];
int Population;
float Expectancy;
struct Country *Pointer;
} COUNTRY;
Run Code Online (Sandbox Code Playgroud)
我看到像这样分配的结构数组:
COUNTRY *countries = calloc(128, sizeof(COUNTRY));
Run Code Online (Sandbox Code Playgroud)
或者像这样:
COUNTRY *countries = malloc(128 * sizeof(COUNTRY));
Run Code Online (Sandbox Code Playgroud)
但这是做什么的:
COUNTRY countries[128] = {};
Run Code Online (Sandbox Code Playgroud)
因为在所有情况下我仍然可以写入每个条目的字段.第三种选择只是糟糕的形式吗?对我来说似乎更好,因为你可以在 main()之外添加其余的变量声明.否则,您只能在main()或其他函数内部调用calloc()或malloc().
难道我做错了什么?