Umer Farooq Ответов: 2

Alllocation указателей в C++


char *(*)(char *, char *)); 

привет, мне нужно выделить этот указатель в c++, я не знаю, как это сделать, может ли кто-нибудь объяснить мне это спасибо.

Что я уже пробовал:

я ничего не понимал в этом указателе

2 Ответов

Рейтинг:
15

phil.o

Там чего-то не хватает.

char * определяет тип возвращаемого значения указателя функции.

(*) недопустимо как есть; если вы собираетесь объявить указатель на функцию, вы должны дать ему имя, например (*function_name)
Кроме того, есть закрывающая скобка, которая не соответствует ее открывающей.

Например:

#include <iostream>
using namespace std;

char * func1(char *s1, char *s2) {
   return "In func1()\n";
}

char * func2(char *s1, char *s2) {
   return "In func2()\n";
}

int main() {
   char * (*myfunc)(char *, char *);
   myfunc = func1;
   cout << myfunc("", "");
   myfunc = func2;
   cout << myfunc("", "");
   return 0;
}

Это приводит к следующему результату:
In func1()
In func2()


Надеюсь, это поможет. Любезно.


CPallini

5.

Рейтинг:
1

phil.o

Интересная ссылка. Я заклеил его закладкой, я совершенно уверен, что когда-нибудь он каким-то образом пригодится.
Спасибо.