目标是在调用函数时,将类似 {{"network", "lan"}, {"dhcp", "true"}}
这样的常量数组(代表相应结构参数的成员变量)作为参数传递。
ubus_call("router", "client", {{"network", "lan"}, {"dhcp", "true"}}, 2);
我尝试了下面的代码,但编译时出现了错误:
struct ubus_args {
char *key;
char *val;
};
int ubus_call(char *obj, char *method, struct ubus_args u_args[], int size_args) {
printf("%s\n", obj);
printf("%s\n", method);
printf("%s %s\n", u_args->key, u_args->val);
return 0;
}
int main ()
{
ubus_call("router", "client", {{"network", "lan"}, {"dhcp", "true"}}, 2);
return 0;
}
我该如何以正确的方式做到这一点?
int ubus_call(const char *obj, const char *method, const struct ubus_args *u_args, size_t size_args)
。 - chux - Reinstate Monicastruct ubus_args
本身应该使用const char *
而不是char *
,因为你正在将字符串字面量放入其中。字符串字面量是不可写的。 - M.M