Search
 
 
  Engleski
 
 
 
Open in this window (click to change)
Forum@DeGiorgi: Početna
Forum za podršku nastavi na PMF-MO
Login Registracija FAQ Smajlići Članstvo Pretražnik Forum@DeGiorgi: Početna

zadatak s pokazivacima
WWW:

Moja sarma
 
Započnite novu temu   Odgovorite na temu   printer-friendly view    Forum@DeGiorgi: Početna -> Kolegiji 1. godine, preddiplomski studij Matematika -> Programiranje 1 i 2
Prethodna tema :: Sljedeća tema  
Autor/ica Poruka
Morpheus
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 19. 04. 2004. (20:33:19)
Postovi: (40)16
Sarma = la pohva - posuda
= 1 - 0
Lokacija: Matrica

PostPostano: 19:46 ned, 6. 6. 2004    Naslov: zadatak s pokazivacima Citirajte i odgovorite

ii) Deklarirajte polje od 12 elemenata koji su pokazivaci na funkcije. Svaka funkcija kao ulazne argumente ima dva
pokazivaca na tip double, a vraca pokazivac na tip float
Rj: char* (*f)(int *x[])

ovo je iz jednog kolokvija al mi se cini da je rj.krivo,
cini mi se da je u rj. deklariran pokazivač na funkciju koja vraca pokazivac na tip char a kao ulazne elemente uzima polje pokazivaca tipa int,
ja mislim da bi pravo rj. trebalo bit

float *(*x[12])(double*,double*)

e sad ne znam da li sam u pravu pa bih molio konstruktive savjete
ii) Deklarirajte polje od 12 elemenata koji su pokazivaci na funkcije. Svaka funkcija kao ulazne argumente ima dva
pokazivaca na tip double, a vraca pokazivac na tip float
Rj: char* (*f)(int *x[])

ovo je iz jednog kolokvija al mi se cini da je rj.krivo,
cini mi se da je u rj. deklariran pokazivač na funkciju koja vraca pokazivac na tip char a kao ulazne elemente uzima polje pokazivaca tipa int,
ja mislim da bi pravo rj. trebalo bit

float *(*x[12])(double*,double*)

e sad ne znam da li sam u pravu pa bih molio konstruktive savjete


[Vrh]
Korisnički profil Pošaljite privatnu poruku
ahri
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 19. 11. 2003. (23:16:07)
Postovi: (193)16
Sarma = la pohva - posuda
= 7 - 0

PostPostano: 20:48 ned, 6. 6. 2004    Naslov: Citirajte i odgovorite

meni se cini okej. :). not sure though.
meni se cini okej. :). not sure though.



_________________
[Vrh]
Korisnički profil Pošaljite privatnu poruku Pošaljite e-mail
Crni
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 15. 12. 2003. (01:20:43)
Postovi: (23C)16
Spol: muško
Sarma = la pohva - posuda
= 29 - 25
Lokacija: Zagreb

PostPostano: 1:05 pon, 7. 6. 2004    Naslov: Citirajte i odgovorite

A ovak?

[code:1]typedef float* (*fun)(double*,double*);
main()
{
fun f[12];
}[/code:1]
A ovak?

Kod:
typedef float* (*fun)(double*,double*);
main()
{
 fun f[12];
}


[Vrh]
Korisnički profil Pošaljite privatnu poruku
mdoko
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 30. 11. 2002. (22:17:12)
Postovi: (71A)16
Spol: muško
Sarma = la pohva - posuda
199 = 237 - 38
Lokacija: Heriot-Watt University, Edinburgh

PostPostano: 9:19 uto, 8. 6. 2004    Naslov: Re: zadatak s pokazivacima Citirajte i odgovorite

float *(*x[12])(double*,double*);

Ovo je u redu.
float *(*x[12])(double*,double*);

Ovo je u redu.



_________________
Extraordinary claims require extraordinary evidence. – Carl Sagan
[Vrh]
Korisnički profil Pošaljite privatnu poruku Posjetite Web stranice
SvekY
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 21. 11. 2003. (23:44:22)
Postovi: (FF)16
Spol: muško
Sarma = la pohva - posuda
11 = 14 - 3
Lokacija: unitarni vektorski prostor

PostPostano: 12:55 sub, 12. 6. 2004    Naslov: Citirajte i odgovorite

Ali zar nije, (malo pojednostavnjeno): [code:1]int *x[12];[/code:1] pokazivač na polje.
Budući da je [code:1]int x[12];[/code:1] deklaracija polja, a polje je pokazivač na 0. član polja.
Onda je ova [b]prva[/b] deklaracija pokazivač na polje (int-ova) tj. pokazivač na pokazivač na 0. član.

Imam li pravo? kako se zove 1. i 2. deklaracija :?:

Hoću reći da je [code:1]float *(*x[12])(double*,double*);[/code:1] ustvari pokazivač na polje funkcija koje uzimaju... blablabla.
Ali zar nije, (malo pojednostavnjeno):
Kod:
int *x[12];
pokazivač na polje.
Budući da je
Kod:
int x[12];
deklaracija polja, a polje je pokazivač na 0. član polja.
Onda je ova prva deklaracija pokazivač na polje (int-ova) tj. pokazivač na pokazivač na 0. član.

Imam li pravo? kako se zove 1. i 2. deklaracija Question

Hoću reći da je
Kod:
float *(*x[12])(double*,double*);
ustvari pokazivač na polje funkcija koje uzimaju... blablabla.


[Vrh]
Korisnički profil Pošaljite privatnu poruku Pošaljite e-mail
Void
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 14. 11. 2002. (18:08:22)
Postovi: (FA)16
Sarma = la pohva - posuda
= 8 - 0

PostPostano: 13:50 sub, 12. 6. 2004    Naslov: Citirajte i odgovorite

[quote="SvekY"]Ali zar nije, (malo pojednostavnjeno): [code:1]int *x[12];[/code:1] pokazivač na polje.
[/quote]

To je polje pokazivaca... x pokazuje na prvi element polja koje se sastoji od pokazivaca na int.

opcenito za:
[code:1]
tip_podatka ime[N];
[/code:1]

ime je pokazivac na prvi element polja koje se sastoji od N podataka tipa tip_podatka. ime je pointer i njegova vrijednost je adresa prvog elementa polja. Kad kazes ime[i] tu zapravo pise *(ime+i),sto znaci povecaj adresu koja pise u ime za i (koristeci aritmetiku pointera) i pogledaj sto pise na toj memorijskoj lokaciji.
SvekY (napisa):
Ali zar nije, (malo pojednostavnjeno):
Kod:
int *x[12];
pokazivač na polje.


To je polje pokazivaca... x pokazuje na prvi element polja koje se sastoji od pokazivaca na int.

opcenito za:
Kod:

tip_podatka ime[N];


ime je pokazivac na prvi element polja koje se sastoji od N podataka tipa tip_podatka. ime je pointer i njegova vrijednost je adresa prvog elementa polja. Kad kazes ime[i] tu zapravo pise *(ime+i),sto znaci povecaj adresu koja pise u ime za i (koristeci aritmetiku pointera) i pogledaj sto pise na toj memorijskoj lokaciji.


[Vrh]
Korisnički profil Pošaljite privatnu poruku
ZELENIZUBNAPLANETIDO
SADE

Forumaš(ica)
Forumaš(ica)


Pridružen/a: 04. 03. 2004. (19:56:15)
Postovi: (54F)16
Sarma = la pohva - posuda
= 12 - 5
Lokacija: hm?

PostPostano: 18:36 ned, 13. 6. 2004    Naslov: Citirajte i odgovorite

[quote="SvekY"]Ali zar nije, (malo pojednostavnjeno): [code:1]int *x[12];[/code:1] pokazivač na polje.[/quote]
Hm. ovo bi bio pokazivac na polje. (iako se, tehnicki gledano, sa poljem kao takvim, barata kao sa pointerom na prvi element polja, ovo bi C nazvao na user razini pointerom na polje)
[code:1]int *(x[12])[/code:1]
SvekY (napisa):
Ali zar nije, (malo pojednostavnjeno):
Kod:
int *x[12];
pokazivač na polje.

Hm. ovo bi bio pokazivac na polje. (iako se, tehnicki gledano, sa poljem kao takvim, barata kao sa pointerom na prvi element polja, ovo bi C nazvao na user razini pointerom na polje)
Kod:
int *(x[12])



_________________

Pupoljak nije negiran. Rekao sam to i ponovit cu to jos jedanput. Pupoljak NIJE negirAn.
MADD
(Mothers Against Dirty Dialectics)
Based on a true story. NOT.
Ko ih sljivi, mi sviramo punk Wink
[Vrh]
Korisnički profil Pošaljite privatnu poruku Posjetite Web stranice
Gost






PostPostano: 21:05 ned, 13. 6. 2004    Naslov: Citirajte i odgovorite

SvekY (napisa):
Ali zar nije, (malo pojednostavnjeno): Kod:
int *x[12];
pokazivač na polje.
-------------------------------------------------------------------------------------

koliko ja znam pokazivač na polje se deklarira kao normalan pokazivač:
int *pp;
ali je stvar u inicijalizaciji
daklem pokazivač na polje je:


int p[5],*pp;
pp=p;

dok je :
int *pp[12]-polje pokazivaca
SvekY (napisa):
Ali zar nije, (malo pojednostavnjeno): Kod:
int *x[12];
pokazivač na polje.
-------------------------------------------------------------------------------------

koliko ja znam pokazivač na polje se deklarira kao normalan pokazivač:
int *pp;
ali je stvar u inicijalizaciji
daklem pokazivač na polje je:


int p[5],*pp;
pp=p;

dok je :
int *pp[12]-polje pokazivaca


[Vrh]
veky
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 09. 12. 2002. (19:59:43)
Postovi: (5B0)16
Sarma = la pohva - posuda
22 = 24 - 2
Lokacija: negdje daleko...

PostPostano: 22:03 ned, 13. 6. 2004    Naslov: Citirajte i odgovorite

[quote="Anonymous"]koliko ja znam pokazivač na polje se deklarira kao normalan pokazivač:
int *pp;[/quote]

To je prilično "normalan" pokazivač, ali pokazivač na polje i pokazivač na int nisu jedno te isto. Ti si upravo deklarirao pokazivač na int.

Ono što ti možda pokušavaš reći, je da je polje intova specijalna vrsta pokazivača na int u Cu, što jest istina, ali to naravno ne znači da je pokazivač na polje isto što i pokazivač na int. Eventualno (iako ni to nije potpuno točno), pokazivač na polje (intova) je pokazivač na _pokazivač na_ int.

HTH,
Anonymous (napisa):
koliko ja znam pokazivač na polje se deklarira kao normalan pokazivač:
int *pp;


To je prilično "normalan" pokazivač, ali pokazivač na polje i pokazivač na int nisu jedno te isto. Ti si upravo deklarirao pokazivač na int.

Ono što ti možda pokušavaš reći, je da je polje intova specijalna vrsta pokazivača na int u Cu, što jest istina, ali to naravno ne znači da je pokazivač na polje isto što i pokazivač na int. Eventualno (iako ni to nije potpuno točno), pokazivač na polje (intova) je pokazivač na _pokazivač na_ int.

HTH,


[Vrh]
Korisnički profil Pošaljite privatnu poruku Pošaljite e-mail Posjetite Web stranice
Morpheus
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 19. 04. 2004. (20:33:19)
Postovi: (40)16
Sarma = la pohva - posuda
= 1 - 0
Lokacija: Matrica

PostPostano: 20:49 pon, 14. 6. 2004    Naslov: Citirajte i odgovorite

[quote]
Ono što ti možda pokušavaš reći, je da je polje intova specijalna vrsta pokazivača na int u Cu, što jest istina, ali to naravno ne znači da je pokazivač na polje isto što i pokazivač na int. Eventualno (iako ni to nije potpuno točno), pokazivač na polje (intova) je pokazivač na _pokazivač na_ int.
[/quote]

Slazem se sa svim gore navedenim, ali to opet ne utjece na deklaraciju,tj:
int *p[12]-je polje pokazivaca, a ne pokazivac na polje dimenzije 12,

a sad za pokazivač na polje ja ga znam deklarirat samo na nacin:

int *pp,p[20];
pp=p;

ako postoji koji drugi nacin, javite mi
Citat:

Ono što ti možda pokušavaš reći, je da je polje intova specijalna vrsta pokazivača na int u Cu, što jest istina, ali to naravno ne znači da je pokazivač na polje isto što i pokazivač na int. Eventualno (iako ni to nije potpuno točno), pokazivač na polje (intova) je pokazivač na _pokazivač na_ int.


Slazem se sa svim gore navedenim, ali to opet ne utjece na deklaraciju,tj:
int *p[12]-je polje pokazivaca, a ne pokazivac na polje dimenzije 12,

a sad za pokazivač na polje ja ga znam deklarirat samo na nacin:

int *pp,p[20];
pp=p;

ako postoji koji drugi nacin, javite mi


[Vrh]
Korisnički profil Pošaljite privatnu poruku
veky
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 09. 12. 2002. (19:59:43)
Postovi: (5B0)16
Sarma = la pohva - posuda
22 = 24 - 2
Lokacija: negdje daleko...

PostPostano: 21:19 pon, 14. 6. 2004    Naslov: Citirajte i odgovorite

[quote="Morpheus"][quote]
Ono što ti možda pokušavaš reći, je da je polje intova specijalna vrsta pokazivača na int u Cu, što jest istina, ali to naravno ne znači da je pokazivač na polje isto što i pokazivač na int. Eventualno (iako ni to nije potpuno točno), pokazivač na polje (intova) je pokazivač na _pokazivač na_ int.
[/quote]

Slazem se sa svim gore navedenim, ali to opet ne utjece na deklaraciju,tj:
int *p[12]-je polje pokazivaca, a ne pokazivac na polje dimenzije 12,

a sad za pokazivač na polje ja ga znam deklarirat samo na nacin:

int *pp,p[20];
pp=p;

ako postoji koji drugi nacin, javite mi[/quote]

Opet. To je pokazivač na int, konkretni int koji se još zove p[0] . "Pokazivač na polje", eventualno bi bio nešto poput int**pp .
Morpheus (napisa):
Citat:

Ono što ti možda pokušavaš reći, je da je polje intova specijalna vrsta pokazivača na int u Cu, što jest istina, ali to naravno ne znači da je pokazivač na polje isto što i pokazivač na int. Eventualno (iako ni to nije potpuno točno), pokazivač na polje (intova) je pokazivač na _pokazivač na_ int.


Slazem se sa svim gore navedenim, ali to opet ne utjece na deklaraciju,tj:
int *p[12]-je polje pokazivaca, a ne pokazivac na polje dimenzije 12,

a sad za pokazivač na polje ja ga znam deklarirat samo na nacin:

int *pp,p[20];
pp=p;

ako postoji koji drugi nacin, javite mi


Opet. To je pokazivač na int, konkretni int koji se još zove p[0] . "Pokazivač na polje", eventualno bi bio nešto poput int**pp .


[Vrh]
Korisnički profil Pošaljite privatnu poruku Pošaljite e-mail Posjetite Web stranice
mdoko
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 30. 11. 2002. (22:17:12)
Postovi: (71A)16
Spol: muško
Sarma = la pohva - posuda
199 = 237 - 38
Lokacija: Heriot-Watt University, Edinburgh

PostPostano: 15:39 uto, 15. 6. 2004    Naslov: Citirajte i odgovorite

[quote="Morpheus"]
a sad za pokazivač na polje ja ga znam deklarirat samo na nacin:

int *pp,p[20];
pp=p;

ako postoji koji drugi nacin, javite mi
[/quote]

Ovo sto si ti napravio je postavio pp da pokazuje na p[0], ako inkrementas pp (++pp) on ce pokazivati na p[1] sto dokazuje da je to pointer na integer, jer se je prilikom inkrementa pomakao za onoliko byteova koliko iznosi sizeof(int), da je to bio pointer na polje od 20 integera, kao sto zelis da bude, prilikom inkrementa bi se pomakao za 20 * siozeof(int)
Evo na sto mislim:
[code:1]
int* int_p; // pointer na integer
int* array[10]; // polje od 10 pointera na integer
int (*array_p)[10]; // pointer na polje od 10 integera
[/code:1]

Da se uvjeris da prva i treca deklaracija nisu ekvivalentne provjeri da se slijedece stvari evaluiraju kao 1 (i.e. [i]true[/i])
[code:1]
sizeof(*int_p) == sizeof(int);
sizeof(*array_p) == 10 * sizeof(int);
[/code:1]
Morpheus (napisa):

a sad za pokazivač na polje ja ga znam deklarirat samo na nacin:

int *pp,p[20];
pp=p;

ako postoji koji drugi nacin, javite mi


Ovo sto si ti napravio je postavio pp da pokazuje na p[0], ako inkrementas pp (++pp) on ce pokazivati na p[1] sto dokazuje da je to pointer na integer, jer se je prilikom inkrementa pomakao za onoliko byteova koliko iznosi sizeof(int), da je to bio pointer na polje od 20 integera, kao sto zelis da bude, prilikom inkrementa bi se pomakao za 20 * siozeof(int)
Evo na sto mislim:
Kod:

int* int_p; // pointer na integer
int* array[10]; // polje od 10 pointera na integer
int (*array_p)[10]; // pointer na polje od 10 integera


Da se uvjeris da prva i treca deklaracija nisu ekvivalentne provjeri da se slijedece stvari evaluiraju kao 1 (i.e. true)
Kod:

sizeof(*int_p) == sizeof(int);
sizeof(*array_p) == 10 * sizeof(int);



_________________
Extraordinary claims require extraordinary evidence. – Carl Sagan
[Vrh]
Korisnički profil Pošaljite privatnu poruku Posjetite Web stranice
Prethodni postovi:   
Započnite novu temu   Odgovorite na temu   printer-friendly view    Forum@DeGiorgi: Početna -> Kolegiji 1. godine, preddiplomski studij Matematika -> Programiranje 1 i 2 Vremenska zona: GMT + 01:00.
Stranica 1 / 1.

 
Forum(o)Bir:  
Ne možete otvarati nove teme.
Ne možete odgovarati na postove.
Ne možete uređivati Vaše postove.
Ne možete izbrisati Vaše postove.
Ne možete glasovati u anketama.
You cannot attach files in this forum
You can download files in this forum


Powered by phpBB © 2001, 2002 phpBB Group
Theme created by Vjacheslav Trushkin
HR (Cro) by Ančica Sečan