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

void funkcija u C-u,test program

[es] :: C/C++ programiranje :: C/C++ za početnike :: void funkcija u C-u,test program

[ Pregleda: 2841 | Odgovora: 8 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

vozho
Student
Beograd

Član broj: 219486
Poruke: 12
95.180.60.*



Profil

icon void funkcija u C-u,test program24.05.2010. u 04:26 - pre 169 meseci
napisao sam test program,cisto da saberem 2 i 3...
medjutim,posle kompajliranja se pokrene program i javlja se

send error report/don't send greska.

Code:
#include <stdio.h>
#include <stdlib.h>

void saberi(int *c,int a,int b)
        {
        *c=a+b;
        return;
        }
        
main()
      {
      int a=2,b=3,*c;
      saberi(*c,a,b);
      printf("%d\n",*c);
      system("pause");
      }


u greskama pise: [warning]passing arg 1 of `saberi' makes pointer from integer without a cast

pisem u dev-C++-u.
Sta bi trebalo uraditi da ovaj program normalno funkcionise?Hvala unapred. :)

(e,da,nije mi problem ako bih npr. napravio funkciju koja vraca int kao zbir dva broja,sa return a+b,ta mi radi normalno,ali ovo me muci...)

P.S. uh,ovo sam trebao u C za pocetnike...na pogresnom mestu tema,sry :\

[Ovu poruku je menjao vozho dana 24.05.2010. u 05:48 GMT+1]

[Ovu poruku je menjao vozho dana 24.05.2010. u 20:05 GMT+1]
V™
 
Odgovor na temu

X Files
Vladimir Stefanovic
Pozarevac

SuperModerator
Član broj: 15100
Poruke: 4902
212.200.65.*

Jabber: xfiles@elitesecurity.org


+638 Profil

icon Re: void funkcija u C-u,test program24.05.2010. u 06:33 - pre 169 meseci
// netestirano, probaj s ovim izmenama
Code:

// ...
saberi(&c,a,b);
// ...
printf("%d\n",c);
// ...
 
Odgovor na temu

Mihajlo Cvetanović
Beograd

Moderator
Član broj: 37636
Poruke: 1249



+96 Profil

icon Re: void funkcija u C-u,test program24.05.2010. u 09:16 - pre 169 meseci
S tim da u main-u promenljiva c mora da bude int, a ne int*.
 
Odgovor na temu

enaB
Beograd

Član broj: 59951
Poruke: 397
*.dynamic.sbb.rs.

ICQ: 276002814


+9 Profil

icon Re: void funkcija u C-u,test program24.05.2010. u 15:23 - pre 169 meseci
A ni return u funkciji saberi nije potrebno, ako se ne varam. Kad se sve to sastavi, izgleda ovako


Code:
#include <stdio.h>
#include <stdlib.h>

void saberi(int *c,int a,int b) {
        *c=a+b;
}

main() {
      int a=2,b=3,c;
      saberi(&c,a,b);
      printf("%d\n", c);
      system("pause");
 }
 
Odgovor na temu

vozho
Student
Beograd

Član broj: 219486
Poruke: 12
95.180.60.*



Profil

icon Re: void funkcija u C-u,test program24.05.2010. u 19:41 - pre 169 meseci
odlicno,hvala svima

jos samo jedno pitanjce:ako ostavim c da bude *int,ovo radi.Da li to znaci da je zbir ustvari adresa na koju pokazuje pokazivac c?A program samo ispise tu adresu?
V™
 
Odgovor na temu

Mihajlo Cvetanović
Beograd

Moderator
Član broj: 37636
Poruke: 1249



+96 Profil

icon Re: void funkcija u C-u,test program24.05.2010. u 21:23 - pre 169 meseci
Samo ti se čini da radi, to jest nekad radi, a nekad ne radi, zavisi od mesečeve mene i šta si jeo sinoć za večeru. Ako je promenljiva pointer na nešto (u ovom slučaju pointer na int) onda ona mora da pokazuje na nešto korisno da bi mogla da se koristi. Ovde ne pokazuje ni na šta posebno, to jest vrednost pointera je slučajna pri svakom izvršavanju programa. Kad pokušaš da koristiš slučajno parče memorije za čitanje i pisanje može da se desi jedno od sledećeg: sve će raditi normalno, ili će program "pući" na tom mestu, ili će program pući na nekom drugom mestu ko zna kad i kako, ili program neće pući ali će početi misteriozno da se ponaša, i trebaće ti dve nedelje da pronađeš problem. A sve samo zato što nisi inicijalizovao promenljivu, u ovom slučaju int *c = NULL. Da si to uradio onda bi program pukao svaki put pri pokušaju upisivanja, i otkrio bi grešku za 2 minuta. A greška je da ti treba int, da bi upisao nešto u njega, a ne int* koji ničemu ne služi.
 
Odgovor na temu

enaB
Beograd

Član broj: 59951
Poruke: 397
*.dynamic.sbb.rs.

ICQ: 276002814


+9 Profil

icon Re: void funkcija u C-u,test program24.05.2010. u 21:28 - pre 169 meseci
Tj. može da se upiše broj i u int* jer je i adresa takođe celobrojna vrednost kao i vrednost koja se u ovom slučaju upisuje (broj 5) pa se ne pravi problem, dok mu ne napišeš negde u programu *c :)
 
Odgovor na temu

Mihajlo Cvetanović
Beograd

Moderator
Član broj: 37636
Poruke: 1249



+96 Profil

icon Re: void funkcija u C-u,test program24.05.2010. u 21:36 - pre 169 meseci
E vidi stvarno! Nisam ni primetio šta je fora, jer se ovo ne bi ni kompajliralo u C++.
 
Odgovor na temu

[es] :: C/C++ programiranje :: C/C++ za početnike :: void funkcija u C-u,test program

[ Pregleda: 2841 | Odgovora: 8 ] > FB > Twit

Postavi temu Odgovori

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