Cześć wszystkim
Chciałem Was prosić o pomoc jeśli chodzi o to co tak naprawdę wykonuje poniższy fragment kodu:
char some_string[] = "example";
int main()
{
int (*func)();
func = (int(*)())some_string;
func();
}
Nie wiem czy dobrze rozumiem, ale ja widzę to tak:
int (*func)();
--> pointer o nazwie func na funkcję typu int
func = (int(*)())some_string;
--> ustawiamy pointer func na zrzutowany pointer z charów na funkcję typu int? Tego nie jestem pewien. No, bo mamy char some_string[] = "example";
gdzie some_string to pointer na pierwszy bajt przypisanego do niego stringa. Jakim cudem można taki pointer zrzutować na pointer typu int i to jeszcze taki, który będzie wskazywał na funkcję tego typu? Ciężko mi to zrozumieć.
Tak to należy rozumieć jak opisałem powyżej czy źle myślę?