Prochor Napisano Sierpień 13, 2019 Autor Zgłoś Udostępnij Napisano Sierpień 13, 2019 Da sie w ogole zrobic dynamicznie wielowymiarowa tablice? Tak, ze zaden wymiar nie jest znany podczas kompilacji. Cytuj Link do komentarza Udostępnij na innych stronach More sharing options...
Wraith Napisano Sierpień 14, 2019 Zgłoś Udostępnij Napisano Sierpień 14, 2019 Niejestem pewien ale raczej napewno sie da Cytuj Link do komentarza Udostępnij na innych stronach More sharing options...
Complex Napisano Sierpień 16, 2019 Zgłoś Udostępnij Napisano Sierpień 16, 2019 Odsylam Cie do faq na stronie :) Cytuj Link do komentarza Udostępnij na innych stronach More sharing options...
Craze Napisano Wrzesień 8, 2019 Zgłoś Udostępnij 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 Link do komentarza Udostępnij na innych stronach More sharing options...
Juju Napisano Wrzesień 9, 2019 Zgłoś Udostępnij 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 Link do komentarza Udostępnij na innych stronach More sharing options...
Visage Napisano Wrzesień 17, 2019 Zgłoś Udostępnij 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 Link do komentarza Udostępnij na innych stronach More sharing options...
Trace Napisano Wrzesień 19, 2019 Zgłoś Udostępnij 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 Link do komentarza Udostępnij na innych stronach More sharing options...
Visage Napisano Wrzesień 22, 2019 Zgłoś Udostępnij 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 Link do komentarza Udostępnij na innych stronach More sharing options...
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.