Hirdetés
- Xiaomi 15 - kicsi telefon nagy energiával
- Motorola Edge 70 - többért kevesebbet
- Xiaomi 15T Pro - a téma nincs lezárva
- Bemutatkozott a Poco X7 és X7 Pro
- Xiaomi 13 Pro - szerencsés szám
- Microsoft Rewards
- 8000 nit, maradhat? A szaúdiaknál kezd a Honor 600 Pro
- iPhone topik
- Poco F8 Ultra – forrónaci
- Google Pixel topik
Új hozzászólás Aktív témák
-
Karma
félisten
Mivel a fordító számít, így legrosszabb esetben is csak kétféle viselkedést tapasztaltál volna (a CB-féle sajáttal meg a többi fordítóval). Elég egyértelmű így a stack overflow, amit a hatalmas struktúrával idézel elő.
Azért ha meg is kell védened ezt a házit, jobb lenne ha átállnál mallocolt struktúrákra...
-
Jester01
veterán
A scanf("%s") ugyanúgy nem ellenőrzi a hosszt, tehát túlcsordulás veszélyes.
Hogy a program miért nem működik azt már a #3603-ban leírtam. A scanf hagyja a pufferben a sorvéget ezért a rákövetkező fgets üres sort lát. A mostani kóddal ezért a település neve lesz üres.
Az ember azt hinné az adatbevitel egyszerű, de ez sajnos nem így van

Mivel mindenhol sorokat akarsz olvasni, mindenhol fgets kell és máris jó lesz. Persze igazából egy hibakezelős verzió kellene, ami észreveszi, ha több betűt ír be a lökött felhasználó.
Például valami ilyesmi jöhet szóba.
-
Karma
félisten
Azért nem kéri be a házszámot, mert a gets az stdin pufferben hagyja az újsor karaktert, amit az enterlenyomás otthagy - így a következő olvasás azt hozza be a felhasználóra várás helyett.
Azt egy külön getcharral el kell nyelned puszta kézzel.
Egyébként a település nevében is lehet ám szóköz.
-
e=mc²
őstag
Megprobaltam gets()-el, es igy modositottam a kodot:
struct cel_allomas Beker_Cel(){
struct cel_allomas l_cel;
char str[NEVHOSSZ];
printf("Telepules neve:\n");
scanf("%s", l_cel.telepules);
printf("Kozterulet neve:\n");
gets(str);
strcpy(l_cel.kozterulet, str);
printf("Hazszam:\n");
scanf("%s", l_cel.hazszam);
return l_cel;
}viszont miert kapok olyan hibat, hogy a hazszamot mar nem keri be, hanem atugorja?
-
Jester01
veterán
Ahogy mondod

Mivel a main a kapcsolat a futo és a futolepes között, így először futo-ból kellene visszaadni a main-be, majd onnan tovább. A helyzetet bonyolítja, hogy 2 értékről van szó. Egy lehetséges megoldás ha definiálsz egy struktúrát a két értéknek és azt adogatod, valahogy így:struct pozicio
{
int sor;
int oszlop;
};
struct pozicio futo(char tabla[TABLA_MERET][TABLA_MERET], char input[3])
{
struct pozicio p;
...
return p;
}
...
void futolepes(char tabla[TABLA_MERET][TABLA_MERET], struct pozicio p)
{
...
}
...
int main()
{
struct pozicio p;
...
p = futo(tabla, input);
gyalog(tabla, input);
futolepes(tabla, p);
...
}A naív megoldás persze a globális változók használata lenne, de az általában nem ajánlott.
Új hozzászólás Aktív témák
Hirdetés
● olvasd el a téma összefoglalót!
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!
- Villanyszerelés
- Eredeti játékok OFF topik
- Le Mans Ultimate
- AMD Ryzen 9 / 7 / 5 / 3 5***(X) "Zen 3" (AM4)
- exHWSW - Értünk mindenhez IS
- ThinkPad (NEM IdeaPad)
- Crimson Desert
- Víz- gáz- és fűtésszerelés
- Okos otthon - Home Assistant, openHAB és más nyílt rendszerek
- Ubiquiti hálózati eszközök
- További aktív témák...
- AMD Ryzen 5 1600X AM4
- Eladó Apple iPad (2020) 2. generáció Cellular + WiFi 512 GB
- iPhone 16 128GB gyári független hibátlan 2028.10.20. Apple jótállás
- iPhone 17 256GB gyári független hibátlan 2029.02.13. Apple jótállás
- Ryzen 7 7800X3D +ASRock X870 PRO RS WIFI +32GB 6000MHz DDR5 kit! GAR/SZÁMLA (a Te nevedre kiállítva)
- ???????????????????szinteÚJ Dell Pro 14 Ultra 7 255U 16GB DDR5 1TB AI PC FHD+ 1 év garancia
- Azonnali készpénzes Microsoft XBOX Series S és Series X felvásárlás személyesen/csomagküldéssel
- Apple Mac Pro Workstation Dual Xeon,18GB RAM,WIFI,BT,Profi Munkaállomás és Szerver
- Honor Magic 6 Pro 512GB Black Karcmentes állapot 12GB RAM 6 hónap garancia
- Dell Latitude 5420 14" Touchscreen i5-1135G7 16GB 256GB 1 év garancia, 4G LTE OPCIÓ
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
Így elég nehéz segíteni!



