Как объявлять указатель на массив указателей? - C (СИ)
Формулировка задачи:
Народ, поясните как объявлять указатель на массив указателей и как отправлять его как параметр в функцию
Решение задачи: «Как объявлять указатель на массив указателей?»
textual
Листинг программы
#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>
int (* pfunc_array[10]) (char *param1, int param2);
int func(char *p1, int p2)
{
printf("Called function: %s\n", __func__);
printf("Passed first parameter: %s\n", p1);
printf("Passed second parameter: %d\n", p2);
return 0;
}
int main(int argc, char **argv)
{
pfunc_array[0] = func;
pfunc_array[0]("STRING", 5);
}
Объяснение кода листинга программы
- Объявление массива указателей на функции, принимающие два аргумента типа char* и int соответственно.
- Объявление функции, которая будет вызываться из массива указателей на функции.
- Вывод в консоль названия вызываемой функции.
- Вывод в консоль значения первого передаваемого параметра.
- Вывод в консоль значения второго передаваемого параметра.
- Возврат значения 0 из вызываемой функции.
- Выделение памяти под массив указателей на функции.
- Присваивание первому элементу массива указатель на функцию
func. - Вызов функции
funcс двумя аргументами:STRINGи 5. - Вывод в консоль результата выполнения функции
main.