Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 8 odgovora
  • 3.677 pregleda

Najnovija ↓

void funkcija u C-u,test program 24.05.2010. u 05:26 · pre 200 meseci
izmenjeno 2 puta, poslednji put vozho 24.05.2010. u 20:05
  1. vozho24.05.2010. u 20:05zapis iz teksta poruke
  2. vozho24.05.2010. u 05:48zapis iz teksta poruke
#1
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 :\
Potpis
V™
Re: void funkcija u C-u,test program 24.05.2010. u 07:33 · pre 200 meseci #2
// netestirano, probaj s ovim izmenama
Code:

// ...
saberi(&c,a,b);
// ...
printf("%d\n",c);
// ...
Re: void funkcija u C-u,test program 24.05.2010. u 16:23 · pre 200 meseci #4
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");
 }
Re: void funkcija u C-u,test program 24.05.2010. u 20:41 · pre 200 meseci #5
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?
Potpis
V™
Re: void funkcija u C-u,test program 24.05.2010. u 22:23 · pre 200 meseci #6
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.
Re: void funkcija u C-u,test program 24.05.2010. u 22:28 · pre 200 meseci #7
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 :)
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme