Prochor Napisano Sierpień 13, 2019 Autor Zgłoś Napisano Sierpień 13, 2019 Da sie w ogole zrobic dynamicznie wielowymiarowa tablice? Tak, ze zaden wymiar nie jest znany podczas kompilacji. Cytuj
Wraith Napisano Sierpień 14, 2019 Zgłoś Napisano Sierpień 14, 2019 Niejestem pewien ale raczej napewno sie da Cytuj
Complex Napisano Sierpień 16, 2019 Zgłoś Napisano Sierpień 16, 2019 Odsylam Cie do faq na stronie :) Cytuj
Craze Napisano Wrzesień 8, 2019 Zgłoś Napisano Wrzesień 8, 2019 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 Cytuj
Juju Napisano Wrzesień 9, 2019 Zgłoś Napisano Wrzesień 9, 2019 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 Cytuj
Visage Napisano Wrzesień 17, 2019 Zgłoś Napisano Wrzesień 17, 2019 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 Cytuj
Trace Napisano Wrzesień 19, 2019 Zgłoś Napisano Wrzesień 19, 2019 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 :) Cytuj
Visage Napisano Wrzesień 22, 2019 Zgłoś Napisano Wrzesień 22, 2019 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; Cytuj
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.