«function-pointers» 태그된 질문

함수 포인터는 변수에 저장할 수있는 함수에 대한 포인터입니다. 실행할 함수를 런타임에 선택할 수 있습니다.

10
함수 포인터를 통해 C ++ 클래스 메서드 호출
클래스 멤버 함수에 대한 함수 포인터를 얻고 나중에 특정 개체를 사용하여 해당 멤버 함수를 호출하는 방법은 무엇입니까? 다음과 같이 쓰고 싶습니다. class Dog : Animal { Dog (); void bark (); } … Dog* pDog = new Dog (); BarkFunction pBark = &Dog::bark; (*pBark) (pDog); … 또한 가능하면 포인터를 통해 …

8
캡처를 함수 포인터로 사용하는 C ++ 람다
나는 C ++ 람다와 함수 포인터로의 암시 적 변환을 가지고 놀았습니다. 내 시작 예제는 ftw 함수의 콜백으로 사용했습니다. 이것은 예상대로 작동합니다. #include <ftw.h> #include <iostream> using namespace std; int main() { auto callback = [](const char *fpath, const struct stat *sb, int typeflag) -> int { cout << fpath << …

7
멤버 함수에 대한 함수 포인터
동일한 클래스의 다른 함수에 대한 포인터 인 클래스의 멤버로 함수 포인터를 설정하고 싶습니다. 내가 이것을하는 이유는 복잡합니다. 이 예에서는 출력이 "1"이되기를 원합니다. class A { public: int f(); int (*x)(); } int A::f() { return 1; } int main() { A a; a.x = a.f; printf("%d\n",a.x()) } 그러나 이것은 컴파일에 …

7
함수 포인터를 다른 유형으로 캐스팅
void (*)(void*)콜백으로 사용할 함수 포인터를 받는 함수 가 있다고 가정 해 보겠습니다 . void do_stuff(void (*callback_fp)(void*), void* callback_arg); 이제 다음과 같은 기능이 있다면 : void my_callback_function(struct my_struct* arg); 안전하게 할 수 있습니까? do_stuff((void (*)(void*)) &my_callback_function, NULL); 나는 이 질문 을 보았고 '호환 함수 포인터'로 캐스트 할 수 있다고 말하는 일부 …

4
int (*) (int *) = 5 (또는 임의의 정수 값)의 의미
나는 이것을 이해할 수 없다. int main() { int (*) (int *) = 5; return 0; } 위의 할당은 g ++ c ++ 11로 컴파일됩니다. 나는 그것이 as 인수 int (*) (int *)를 받아들이고 (int *)int를 반환하는 함수에 대한 포인터 라는 것을 알고 있지만 그것을 5와 동일시 할 수있는 방법을 …

4
무엇을 하는가? ((void (*) ()) buf) (); 평균?
picoCTF에서 이진 악용 문제를 해결하고 다음 코드를 보았습니다. ((void (*)())buf)(); buf문자 배열은 어디에 있습니까 ? 나는 도전을 해결했지만 정확히 무엇을하고 있는지 이해할 수없는 것 같습니다. 나는 보았다 이 스레드 그러나 나는 그것을 만들 수 없습니다. 무슨 ((void (*)())buf)();뜻입니까?

4
void * function ()은 함수에 대한 포인터 또는 void *를 반환하는 함수입니까?
의 의미가 혼동 void *function()됩니다. 함수에 대한 포인터 void*입니까 아니면 함수를 반환 합니까? 나는 항상 포인터를 반환하는 재귀 함수로 데이터 구조에서 사용했지만 멀티 스레딩 ( pthread) 의 코드를 볼 때 동일한 함수 선언이 있습니다. 이제는 차이점이 무엇인지 혼란 스럽습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.