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

Niz kao povratna vrednost funkcije,pomoc

[es] :: C/C++ programiranje :: C/C++ za početnike :: Niz kao povratna vrednost funkcije,pomoc

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

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

MaliBatica

Član broj: 206788
Poruke: 184
*.dynamic.isp.telekom.rs.



+4 Profil

icon Niz kao povratna vrednost funkcije,pomoc02.05.2013. u 12:17 - pre 133 meseci
E ovako,racunam nesto u vezi termike,i treba da dobijem rezultate temperature i pritiska,i sad bih ja to da iz funkcije dobijem vektor tipa a[2]={T,p}.
No medjutim ,nesto mi ne ide,ja sam stavio kod pa ako bi neko mogao da me posavetuje,sta da menjam.

#include <iostream>

using namespace std;

float funkcijapv(float a,float b,float c);

int main()
{
float a1=2,b1=4,c1=7;
float pv1[2];
//pv1[2]=funkcijapv(a1,b1,c1);
cout<<funkcijapv(a1,b1,c1)<<endl;
//cout<<pv1<<endl; return 0;
}
float funkcijapv(float a,float b,float c)
{
float pv[2]={a*b,a*b*c};
return pv[2];
}


Samo sam zbog pojednostavljivanja samog racunanja,stavio primer za zapreminu i povrsinu,ali radim po istom principu i konkretni primer za p i T.
 
Odgovor na temu

djoka_l
Beograd

Član broj: 56075
Poruke: 3453

Jabber: djoka_l


+1462 Profil

icon Re: Niz kao povratna vrednost funkcije,pomoc02.05.2013. u 12:52 - pre 133 meseci
Code (cpp):

#include <iostream>

using namespace std;

float* funkcijapv(float a,float b,float c);

int main()
{
   float a1=2,b1=4,c1=7;
   float* pv1;
   pv1=funkcijapv(a1,b1,c1);
   printf("%f %f\n", pv1[0], pv1[1]);
}
float* funkcijapv(float a,float b,float c)
{
   float* pv= new float[2];
   pv[0] = a*b; pv[1]=a*b*c;
   return pv;
}
 


1. Funkcija koja vraća niz float vrednosti ne može biti tipa float nego float*
2. Niz koji ima dva člana ima indekse članova 0 i 1, tj postoji pv1[0] i pv1[1], a sa pv1[2] si prekoračio granicu niza i napravio potencijalnu bombu u programu.
3. Užasno loše je što kao rezultat funkcije vraćaš lokalnu promenljivu funkcije. Ona postoji na steku za vreme izvršavanja funkcije i neposredno po povratku (neko vreme), a onda će je nešto drugo pregaziti. Znači MORAŠ da alociraš memoriju za pv u funkciji, bilo operatorom new bilo funkcijom malloc.
 
Odgovor na temu

[es] :: C/C++ programiranje :: C/C++ za početnike :: Niz kao povratna vrednost funkcije,pomoc

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

Postavi temu Odgovori

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