C++ Ukazatel na vícerozměrné pole

Vývojová prostředí, aplikace, skripty, http://www... síťové programy, internet, sdílení...
Odpovědět
kybrex
Začátečník
Začátečník
Uživatelský avatar
Registrován: 16. dub 2006
Bydliště: V sudu... (plnej samozřejmě)
Kontaktovat uživatele:

C++ Ukazatel na vícerozměrné pole

Příspěvek od kybrex »

Zdravím. Narazil jsem na zajímavý problém. Potřeboval bych vytvořit ukazatel na vícerozměrné pole, ale nikde jsem se s řešením podobného problému nesetkal. Všude se pracuje jen s jednorozměrnými poli (ve všech výukových příkladech, co jsem našel).

int * pMem=new int [10]; // tohle je jasné
//ale
int * pMem=new int [10][10]; // tohle už kompilátor nesežere a křičí.

Jak to mám správně zapsat? Předem díky

CPU: Intel Pentium (Prescott) 2,8GHz / 800MHz cache L1 16kB, L2 1MB; + CoolerMaster S9U1 Hyper TX MotherBoard: ASUS P5GD1PRO Intel 915P PCI-Express, GPU: ATI Radeon X700PRO 425MHz 128MB GDDR3 (860MHz), RAM: 2x256MB + 2x512MB 400MHz, HDD: Western Digital Caviar 320GB cache 16MB + Western Digital 1000GB 16MB cache, DVD mechanika: LG HL-DT-ST DVDRAM GSA-4082B writing: 8x DVD-R/+R, 4x DVD+RW/-RW, 3x DVD-RAM, 24x CD-R, 16x CD-RW reading: 12x DVD, 10x DVD-RW/+RW, 3x DVD-RAM, 32x CD. LCD: 19" AG Neovo F-419, CRT: 17" ADI Microscan M700, REPRO: Eltax concept 400 + Omnitronic P-250

NOTEBOOK:
Hewlett Packard 550 :: CPU: C2D T5270 @1,4GHz L2 Cache 2MB, FSB 800MHz, RAM: 2+2 GB DDR2 667 MHz, Chipset: Intel GME965, HDD: 160 GB 5400 RPM Serial ATA, DVD±RW, Komunikace: Modem 56 Kbit/s, 10/100 Mbit/s LAN Ethernet Controller, Wireless LAN 802.11a/b/g, BlueTooth
Lukfi
Mírně pokročilý
Mírně pokročilý
Uživatelský avatar
Registrován: 04. črc 2005
Bydliště: Praha
Kontaktovat uživatele:

Příspěvek od Lukfi »

Co třeba [10,10]? (nevím, jen střílím)
Výkaly prosím umisťujte do záchodové mísy a nikoliv diskuzního fóra.
€agle
Středně pokročilý
Středně pokročilý
Uživatelský avatar
Registrován: 13. lis 2003
Bydliště: Vlastní 3D svět :)
Kontaktovat uživatele:

Příspěvek od €agle »

Pokud máš statické rozměry, tak nejjednodušší je použít

Kód: Vybrat vše

int pMem[10][10]; 
Jinak musíš využít pointer na pointer, tzn

Kód: Vybrat vše

int **pMem = new int*[10];
for(int i = 0; i < 10; i++) pMem[i] = new int[10];
Eagle3D Engine under developement

Hledáme do firmy schopného ASP/VB.NET/C# programátora, více po SZ
kybrex
Začátečník
Začátečník
Uživatelský avatar
Registrován: 16. dub 2006
Bydliště: V sudu... (plnej samozřejmě)
Kontaktovat uživatele:

Příspěvek od kybrex »

Právě, že mám dynamické rozměry. Výpočet na základě předchozího zadání rozměrů matice. Díky moc - vytrhnul si mě trn z paty. Fakt bezva a elegantní řešení. :)

CPU: Intel Pentium (Prescott) 2,8GHz / 800MHz cache L1 16kB, L2 1MB; + CoolerMaster S9U1 Hyper TX MotherBoard: ASUS P5GD1PRO Intel 915P PCI-Express, GPU: ATI Radeon X700PRO 425MHz 128MB GDDR3 (860MHz), RAM: 2x256MB + 2x512MB 400MHz, HDD: Western Digital Caviar 320GB cache 16MB + Western Digital 1000GB 16MB cache, DVD mechanika: LG HL-DT-ST DVDRAM GSA-4082B writing: 8x DVD-R/+R, 4x DVD+RW/-RW, 3x DVD-RAM, 24x CD-R, 16x CD-RW reading: 12x DVD, 10x DVD-RW/+RW, 3x DVD-RAM, 32x CD. LCD: 19" AG Neovo F-419, CRT: 17" ADI Microscan M700, REPRO: Eltax concept 400 + Omnitronic P-250

NOTEBOOK:
Hewlett Packard 550 :: CPU: C2D T5270 @1,4GHz L2 Cache 2MB, FSB 800MHz, RAM: 2+2 GB DDR2 667 MHz, Chipset: Intel GME965, HDD: 160 GB 5400 RPM Serial ATA, DVD±RW, Komunikace: Modem 56 Kbit/s, 10/100 Mbit/s LAN Ethernet Controller, Wireless LAN 802.11a/b/g, BlueTooth
Odpovědět

Zpět na „Programování a web“