Как я могу динамически создать функцию в C?
Я пытаюсь суммировать мою проблему C следующим образом:
-
У меня есть матрица, и я хочу иметь возможность использовать некоторую функцию для генерации ее элементов.
-
Функция не имеет аргументов
Следовательно, я определяю следующее:
typedef double(function)(unsigned int,unsigned int);
/* writes f(x,y) to each element x,y of the matrix*/
void apply(double ** matrix, function * f);
Теперь мне нужно генерировать постоянные функции внутри кода. Я думал о создании вложенной функции и возвращении ее указателя, но руководство GCC (которое позволяет вложенные функции) говорит:
"Если вы попытаетесь вызвать вложенную функцию через свой адрес после содержащая функция вышла, все ад сломается".
который я бы ожидал от этого кода...
function * createConstantFunction(const double value){
double function(unsigned int,unsigned int){
return value;
}
return &function;
}
Итак, как я могу заставить его работать?
Спасибо!