Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Pokazivac na funkciju - GREŠKA

[es] :: C/C++ programiranje :: C/C++ za početnike :: Pokazivac na funkciju - GREŠKA

[ Pregleda: 1370 | Odgovora: 1 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

azzpoz

Član broj: 300637
Poruke: 96



+1 Profil

icon Pokazivac na funkciju - GREŠKA27.03.2013. u 12:08 - pre 84 meseci
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);
 
Odgovor na temu

djoka_l
Beograd

Član broj: 56075
Poruke: 2751



+1123 Profil

icon Re: Pokazivac na funkciju - GREŠKA27.03.2013. u 12:40 - pre 84 meseci
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.
 
Odgovor na temu

[es] :: C/C++ programiranje :: C/C++ za početnike :: Pokazivac na funkciju - GREŠKA

[ Pregleda: 1370 | Odgovora: 1 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.