Pytania otagowane jako function-pointers

Wskaźnik funkcji to wskaźnik do funkcji, która może być przechowywana w zmiennej. Umożliwia wybór funkcji do uruchomienia w czasie wykonywania.


8
C ++ lambda z przechwytywaniami jako wskaźnikiem funkcji
Bawiłem się lambdami C ++ i ich niejawną konwersją na wskaźniki funkcji. Moim początkowym przykładem było użycie ich jako wywołania zwrotnego dla funkcji ftw. Działa to zgodnie z oczekiwaniami. #include <ftw.h> #include <iostream> using namespace std; int main() { auto callback = [](const char *fpath, const struct stat *sb, int …

7
Rzutowanie wskaźnika funkcji na inny typ
Powiedzmy, że mam funkcję, która akceptuje void (*)(void*)wskaźnik funkcji do użycia jako wywołanie zwrotne: void do_stuff(void (*callback_fp)(void*), void* callback_arg); Teraz, jeśli mam taką funkcję: void my_callback_function(struct my_struct* arg); Czy mogę to zrobić bezpiecznie? do_stuff((void (*)(void*)) &my_callback_function, NULL); Przyjrzałem się temu pytaniu i przyjrzałem się niektórym standardom C, które mówią, że …

7
Wskaźnik funkcji do funkcji składowej
Chciałbym ustawić wskaźnik funkcji jako element członkowski klasy, który jest wskaźnikiem do innej funkcji w tej samej klasie. Powody, dla których to robię, są skomplikowane. W tym przykładzie chciałbym, aby wynik miał wartość „1” class A { public: int f(); int (*x)(); } int A::f() { return 1; } int …


4
Co robi ((void (*) ()) buf) (); oznaczać?
Rozwiązuję binarne wyzwanie dotyczące eksploatacji na picoCTF i natrafiłem na następujący fragment kodu: ((void (*)())buf)(); gdzie bufjest tablica znaków. Rozwiązałem wyzwanie, ale nie rozumiem, co dokładnie robi. Spojrzałem na ten wątek, ale nie mogłem go zrozumieć. Co ((void (*)())buf)();znaczy


Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.