Hogyan kell egy függvényből vissza adni a main függvénybe egy paramétert? A feladatom: Készíts függvényt, ami visszaadja két szám összegét!
Megírtam,de nem tudom visszaadni így néz ki:
#include <stdio.h>
#include <string.h>
#include <conio.h>
#include <math.h>
int vmi (int *szam3){
int szam1,szam2;
scanf("%d",&szam1);
szam3=&szam1;
printf("Szam:%d\n",*szam3);
scanf("%d",&szam2);
*szam3=*szam3+szam2;
printf("Osszeguk:%d\n\n",*szam3);
//return *szam3;
}
main()
{
int *szam3;
vmi(&szam3);
//printf("Visszaadott osszeg:%d",*szam3);
}
:D erre nem is gondoltam köszi :)
De egy pillanatra az én példámnál maradva miért nem működik a return értékkel való visszaadás min kéne változtatni?
Nem bonyolította el, csupán cím szerinti paraméterrel akarta megcsinálni. (vagy így tanították neki)
Mellesleg fölösleges a <conio.h> és a <math.h> is...
Amit meg javítanod kell az mondhatni csak egy "*"!
"Nem bonyolította el, csupán cím szerinti paraméterrel akarta megcsinálni."
Pontosan ez az elbonyolítás, de Te ugye honnan is tudnád ezt.
"Nem bonyolította el"
Dehogynem.
Mi volt a feladat?
"Készíts függvényt, ami visszaadja két szám összegét!"
Nem az volt, hogy
"Készíts függvényt, ami bekér két számot, és összegüket cím szerinti paraméterátadással tárolja el egy változóban"
Először is tudom,hogy nem mindegyik include kell, ezek már csak szimplán berögzültek.
Másodszor számomra egyáltalán nem mindegy, szeretem a több megoldást, de én ezt szoktam használni, amit az #1 küldött az tényleg rövidebb, és hasznosabbnak tűnik,de sok feladatnál ilyen megoldásokat kell véghezvinnem, ezért is szerettem volna megtudni,hogy miért nem tudtam átadni a main() függvényembe, amire még mindig nem kaptam választ, habár elvileg #3 azt mondta egy '*' a hiba, nem látom,hogy neki sikerült volna a main-ben kiíratnia a *szam3-t.
@Igaz Mondó Reloaded: C nyelvben csak és kizárólag érték szerinti paraméterátadás van. Ha pointerként akarod átadni egy változód memóriacímét, akkor is érték szerint adódik át.
Forrás: K&R - C programozási nyelv
Itt van egyébként egy példa arra, hogy hogyan lehet pointerekkel ezt megcsinálni:
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!