Цель состоит в том, чтобы передать постоянный массив, (представляющий переменные члены соответствующего параметра структуры), как {{"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;
}
Как я могу это сделать надлежащим образом?
сложные литералы, может быть? –
", но он возвращает ошибки в компиляции:" -> опубликует сообщение об ошибке. – chux
Шаг 1, используйте 'int ubus_call (const char * obj, const char * method, const struct ubus_args * u_args, size_t size_args) ' – chux