В C, есть ли способ вызвать функцию с аргументами, хранящимися в каком-либо массиве? Я новичок в C, я даже не уверен, правильно ли это, но, например ::
void f0(int a) { ... };
void f1(int a, int b) { ... };
void f2(int a, int b, int c) { ... };
int array[5][2][?] = [
[&f0, [5]],
[&f1, [-23, 5]],
[&f2, [0, 1, 2]],
[&f2, [1235, 111, 4234]],
[&f0, [22]]
];
int i;
for (i = 0; i < 5; i++) {
APPLY?(array[i][0], array[i][1])
}
PS: Какую структуру я должен использовать, когда длина элементов массива варьируется?
В Python это будет:
def f0(a): ...
def f1(a, b): ...
def f2(a, b, c): ...
array = [
(f0, (5,)),
(f1, (-23, 5)),
(f2, (0, 1, 2)),
(f2, (1235, 111, 4234)),
(f0, (22,))
]
for f, args in array:
apply(f, args)