[ azzpoz @ 27.03.2013. 12:08 ] @
Code:

int suma(int a,int b){return a+b;}

int centralna(int(*p)(int,int),int broj1, int broj2){
     cout<<p(broj1,broj2)<<endl;}
     


int main(){
    int (*pokazivac)(int(*)(int,int),int,int)=centralna;

 pokazivac(suma,5,23); //        <----- ovaj linija je ok!





Zašto ne može cout<<pokazivac(suma,5,23);
[ djoka_l @ 27.03.2013. 12:40 ] @
Dok ne naučiš da radiš sa pointerima, CRTAJ SLIKE. Najozbiljnije, nacrtaj lokaciju u memoriji crtaj strelice šta koji pointer pokazuje, izvršavaj program u glavi i na papiru dok ti sve ne dođe na svoje mesto.

Drugo, kada pitaš na forumu ne napišeš "Pokazivač na funkciju - GREŠKA" nego napišeš da li si dobio i koju grešku kod kompajliranja (kompletan tekst greške) ili grešku kod izvršavanja sa primerom šta si očekivao, a šta dobio.

U tvom slučaju, program se kompajlira, ali ako se stavi cout<<pokazivac... dobiješ dve vrednosti, a ne samo 28.

Pogledaj malo bolje program!!!

pokazivac je pointer na funkciju koja vraća int. Ti mu dodeljuješ vrednost centralna, ali centralna NE VRAĆA INT. Zato lepo cout pokupi šta se zateklo na steku posle izvršavanja funkcije centralna i to ispisuje.