Skocz do zawartości

wielowymiarowa tablica


Recommended Posts

  • 4 weeks later...
Napisano

wystarcz taki kodzio:

char *wsk;
wsk = new char [] [];
//...
delete wsk;

to jest tablica dwu wymiarowa jesli chcesz troj wymiarowa to wystarczy jeszcze jeden nawias kwadratowy i to styknie

Napisano
y0yster napisał:
wystarcz taki kodzio:

char *wsk;
wsk = new char [] [];
//...
delete wsk;

to jest tablica dwu wymiarowa jesli chcesz troj wymiarowa to wystarczy jeszcze jeden nawias kwadratowy i to styknie

niee, tak nie mozna zrobic, bo jest to sprzecze z zasadami jezyka, sprobowales zkompilowac sobie ten kod?

Jesli nic nie wstawisz w nawiaszach, kompilator wywali, ze size of char[] is unknown or zero,
JEsli co jednak wstawisz: cannot convert "char*[wymiar]' to 'char*'

A poza tym miesieczny kotlet ;-)

pzdr

  • 2 weeks later...
Napisano

sedef ma racje podany przyklad jest bledny powinno byc:

int** mxData = new int[a];
for (int i = 0; i < a; ++i)
   mxData[i] = new int[b];

Dostajesz macierz o rozmiarze axb
Ze zwalnianiem podobnie

Napisano
one_eddie napisał:
sedef ma racje podany przyklad jest bledny powinno byc:
int** mxData = new int[a];
for (int i = 0; i < a; ++i)
   mxData[i] = new int[b];

Dostajesz macierz o rozmiarze axb
Ze zwalnianiem podobnie

A nie powinno być

int** mxData = new (int *)[a];
for(int i = 0; i < a; i++)
    mxData[i] = new int[b];

for(int i = 0; i < a; i++)
    delete [] mxData[i];
delete [] mxData;

bądź

int * mxData = new int[a];
for(int i = 0; i < a; i++)
    mxData[i] = (int)(new int[b]);

for(int i = 0; i < a; i++)
    delete [] (int *)mxData[i];
delete [] mxData;

Obie metody są jednakowo dobre, gdyż każdy wskaźnik można przedstawić za pomocą liczby :) Sprawdzałem i w obu przypadkach mój gcc-3.3.4 nie zgłaszał błędów :)

Napisano

Faktycznei zjadlem gwiazdeczke powinno byc:

int** mxData = new int*[a];
for (int i = 0; i < a; ++i)
   mxData[i] = new int[b];

I zeby byc konsekwentnym, kod zwalniajacy:

for (int i = 0; i < a; ++i)
   delete[] mxData[i];
delete[] mxData;

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Gość
Odpowiedz...

×   Wkleiłeś zawartość bez formatowania.   Usuń formatowanie

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Utwórz nowe...