Hirdetés
- A Samsung bemutatta a világ első 2 nanométeres mobilchipjét
- MIUI / HyperOS topik
- Xiaomi 15 - kicsi telefon nagy energiával
- Megbüntették, ezért feloszlatná az EU-t Elon Musk
- Google Pixel topik
- iPhone topik
- Külföldi prepaid SIM-ek itthon
- Samsung Galaxy S25 - végre van kicsi!
- Jövő héten indul a Xiaomi kameraforradalma
- Kiszivárogtak a Dreame első telefonjának egyes specifikációi
Új hozzászólás Aktív témák
-
kovisoft
őstag
válasz
DopeBob
#6140
üzenetére
Megpróbáltam lefordítani az eredeti kódodat, de nekem (treat warnings as errors beállítással) fordítási hibát dobott a scanf és a printf sorokra. Érthető, mivel az int (*statData)[statDay][OPEN_HOURS] egy kétdimenziós tömbre mutató pointer, nem pedig egy kétdimenziós tömb. A statData[i][j] nem egy int-et, hanem egy pointert jelent. Cast-olással kierőszakoltam, hogy leforduljon, valamint felcseréltem a statData deklarációjában a sorokat és az oszlopokat (int (*statData)[OPEN_HOURS][statDay]), és így már ez a változat is működött.
Ökölszabályként azt tartsd szem előtt, hogy amikor egy pointert deklarálsz, akkor azt tömbként is tudod használni (meg tudod indexelni [i] stílusban), tehát úgy is felfogható a dolog, hogy egy * ugyanúgy hozzáad egy dimenziót a deklarált tömbödhöz, mint egy [SIZE]. Fordítva is igaz a dolog: egy tömb utolsó dimenzióját lehagyva egy pointert kapsz.
Vagyis amikor ezt írod le: int (*statData)[OPEN_HOURS][statDay], akkor ez igazából egy 3 dimenziós tömb, aminek az első két dimenziója a fix [OPEN_HOURS] és [statDay], a harmadik dimenziója dinamikus, és ennek mérete a malloc-ban megadott értékből jön, ami jelen esetben [1] (mivel a teljes allokált méret OPEN_HOURS*statDay*1). Éppen ezért az így deklarált tömb elemeire ezen a módon kell hivatkozni: statData[i][j][0]. Kipróbáltam ezt is, és így is működik. Ezzel együtt nem javaslom ennek a formának a használatát, és nem is értem, hogy a Pluralsight miért így tanítja.
-
kovisoft
őstag
Új hozzászólás Aktív témák
● olvasd el a téma összefoglalót!
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!
- Samsung Galaxy S21 Ultra 12/256GB, Normál, Kártyafüggetlen, Töltővel, 1 Év Garanciával!
- Patriot Viper Venom 2x16GB DDR5 6000MHz CL30 - Gari 2035.10.08. -ig -
- Apple iPhone SE 2022 64GB, Akku: 95%, Megkímélt, Kártyafüggetlen, Töltővel, 1 Év Garanciával!
- Apple iPhone 13 Pro Max 128GB, Akku: 100%, Normál, Kártyafüggetlen, Töltővel, 1 Év Garanciával!
- Apple iPhone 13 128GB, Akku: 85%, Normál, Kártyafüggetlen, Töltővel, 1 Év Garanciával!
- ÁRGARANCIA! Épített KomPhone Ultra 9 285K 32/64GB RAM RX 9070 XT 16GB GAMER PC termékbeszámítással
- Foligain Minoxidil 2 db flakon (2 havi adag)
- Razer Barracuda X Chroma Black gamer Fejhallgató
- Telefon felvásárlás!! Samsung Galaxy A14/Samsung Galaxy A34/Samsung Galaxy A54
- Realme 9 Pro 128GB, Kártyafüggetlen, 1 Év Garanciával
Állásajánlatok
Cég: Laptopszaki Kft.
Város: Budapest
Cég: BroadBit Hungary Kft.
Város: Budakeszi


