komokom Ответов: 2

Как сделать указатель на функцию в C?


Я хочу сделать функцию point to function, которая возвращает мне указатель
Как эта функция

int *test(int x)
{
	int y=x*x;
	int *p=&x;
	return p;
	}


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

Я попробовал эту опцию int main но все время получаю ошибку

int (**t)(int x);
		t=&test;


int (**t)(int x);
		t=*test;


int (**t)(int x);
    t=&(*test);

int (**t)(int x);
		t=*(&test);

2 Ответов

Рейтинг:
9

Patrice T

Совет: потратьте время, чтобы правильно выучить язык, вот очень хорошая лекция для изучения C и C++, ответ включен.
Вот ссылки на справочники книг по С и с++ авторов этих языков. Обратите внимание, что C является предком C++, поэтому знание C всегда полезно с C++.
Язык программирования Си - Википедия, свободная энциклопедия[^]
https://hassanolity.files.wordpress.com/2013/11/the_c_programming_language_2.pdf[^]
http://www.ime.usp.br/~ПФ/Керниган-Ритчи/с-Программирование-электронные книги.формат PDF[^]

Язык Программирования C++ [^]


Рейтинг:
17

cvogt61457

Попробовать это
int* (*myfunc)(int x);

myfunc = тест;

Звоните как
int* ret = myfunc(3);

Для меня это было давно,но попробуй.

Примечание: Вы возвращаете адрес переменной параметра. Он исчезнет, как только вы вернетесь к рутине вызова. Большая Ошибка !!!


komokom

Вы имеете в виду его призыв к рефернам?
Если вы можете объяснить мне, как это работает, я буду рад