Stránka 1 z 1

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

Napsal: pon 26. kvě 2008, 10:49
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

Napsal: pon 26. kvě 2008, 18:28
od Lukfi
Co třeba [10,10]? (nevím, jen střílím)

Napsal: pon 26. kvě 2008, 19:05
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];

Napsal: úte 27. kvě 2008, 23:23
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í. :)