Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: C++ ja taulukot

progo [17.12.2002 20:51:43]

#

Mikä ihme voi jumittaa niin, kun yritän tehdä pikku taulukkoa..:

#define byte unsigned char
..
byte **table = new byte[99][99];

Tuo ei ruvennut toimimaan, Windoze vain ilmoitti laitonta viestiä ruutuun.. siis kääntäjäni toimii VC++6.0.. sitten, sain keksittyä tällaisen sorhon:

byte **table = (byte**) new byte[99][99];

Mutta ei se VC sitä käännä.. virheet olivat todella sekavia, ja ne vaihtelivat, vaikka samaa koodia vääntäisin uusiksi sille compilerille..

progo [17.12.2002 20:52:59]

#

Muuten, eikä staattinen taulukko sovi, sitä pitäisi saada muuttumaan, ja kaiken lisäksi silläkin menetelmällä tilttasi.. :(

Hipo [19.12.2002 23:09:41]

#

Hyihyi, #define on paha, käytä typedefiä. Myöskään typecastailua ei suvaita. Dynaaminen moniulotteinen taulukko tehdään allokoimalla ensin pointtereita ja sitten pointtereihin data, eli näin:

typedef unsigned char byte;

byte **table = new byte *[99];
int i;
for(i=0; i<99; i++) {
  table[i] = new byte[99];
}

progo [20.12.2002 14:41:35]

#

Jeps, kiitos avusta! Hyvin toimii.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta