Ú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.
Ú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!
- Kötelező frissítésnek számít a Microsoft legújabb csomagja a Windows 11-hez
- hcl: GPT diszk kisebbre klónozása
- Milyen billentyűzetet vegyek?
- A fociról könnyedén, egy baráti társaságban
- OLED TV topic
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- Tőzsde és gazdaság
- Óra topik
- Milyen nyomtatót vegyek?
- Kínai és egyéb olcsó órák topikja
- További aktív témák...
- Gamer PC - i5 / GTX 960/12 Gb Ram (Erősebb, mint a 1050 Ti!)
- Eladó AKG Ara, dupla kapszulás mikrofon! Bontatlan, garanciás! Több darab is elérhető!
- Logitech Superstrike x2
- D-link 16 és 24 portos, sima és POE, gigabites managelhető switchek
- Gigabyte H510M PRO-E alaplap + Intel Core i5 10400F CPU (+ram, táp, vga igény szerint)
- Számítógép javítás Budapest Laptop szerviz WiFi és router beállítás
- LG OLED65G49LS CSÚCS Ultra HD 4K 65" OLED TV!
- Dell Latitude 5290, 2 az 1 ben,12.5",FHD,i5-8350U,8GB DDR4,256GB SSD,WIN11
- WD SN8000S 4TB M.2 2280 NVMe SSD Gen4 7300-6800MB/s
- AKCIÓ! ASUS ROG Crosshair VIII Extreme alaplap garanciával hibátlan működéssel
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
