В C++, когда мы делаем что-то вроде этого:ли анонимные функции постоянны в памяти, или они проходят по значению
void a_function(void (*function_name)(char *data))
{
char *data = new char[1];
function_name(data);
}
a_function([](char *data) {
//do sth
});
я думаю function_name является указателем на функцию. Но когда я передаю анонимную функцию, это пробел в памяти, выделенной для этой функции перед передачей?
Если я не передал анонимную функцию, но передал адрес существующей функции, будет ли это равноценным коду выше?
Спасибо, это было то, что я ищу. –