Ĺadny brzuch
Witam!
W jaki sposób mogę stworzyć i korzystać z takiej dużej dwuwymiarowej tablicy, nienaruszając ochrony pamięci?
int tab [100000][10];
dobrze (tablica leży w stercie i nie przeszkadza nikomu):
#include <iostream> int tab [100000][10]; int main() { ... }
źle (tablica wpycha się na stos, a tam pewnie nie będzie dla niej miejsca):
#include <iostream> int main() { int tab [100000][10]; ... }
Alibo dynamicznie
Alibo dynamicznie
Mógłbyś szerzej? ;)
Mógłbyś szerzej? ;)
d y n a m i c z n i e
Jeszcze szerzej? :D
Hmm, w c++ to pewnie będzie coś w ten deseń:
int tab [][10] = new tab[10000][10]; ... delete [] tab;
Aczkolwiek głowy nie dam bo używam C. W razie co zerknij na google jak jest poprawna składnia (alokacji tablicy przez new) ;).
// edit: na pewno coś w ten deseń zadziała:
int **tab = new int*[10000]; int i; for (i=0; i< 10000; i++) tab[i] = new int[10]; // ... for (i=0; i< 10000; i++) delete[] tab[i]; delete[] tab;
A to wcześniej to nie wiem czy podobnie będzie chodzić ;P.
// Pamiętaj że stosowanie jakichkolwiek zmiennych globalnych nie jest dobrym pomysłem ;).
Użytkownik Ali240 edytował ten post 03 styczeń 2008, 23:27
int t[100000][10]; int t2[100000][10]; bool t3[1000000];
Ekhhh tak jak bryn radzil umiesicilem to przed mainem i dalej mam naruszenie pamięcie (wyslij raport o bledach...) :(
EDIT zaspanie... poprawilem moj blad i wszystko dziala :)
Dzieki bryn i Ali240 :)
Użytkownik nosiek edytował ten post 04 styczeń 2008, 00:19
zanotowane.pl doc.pisz.pl pdf.pisz.pl zsf.htw.pl
W jaki sposób mogę stworzyć i korzystać z takiej dużej dwuwymiarowej tablicy, nienaruszając ochrony pamięci?
int tab [100000][10];
dobrze (tablica leży w stercie i nie przeszkadza nikomu):
#include <iostream> int tab [100000][10]; int main() { ... }
źle (tablica wpycha się na stos, a tam pewnie nie będzie dla niej miejsca):
#include <iostream> int main() { int tab [100000][10]; ... }
Alibo dynamicznie
Alibo dynamicznie
Mógłbyś szerzej? ;)
Mógłbyś szerzej? ;)
d y n a m i c z n i e
Jeszcze szerzej? :D
Hmm, w c++ to pewnie będzie coś w ten deseń:
int tab [][10] = new tab[10000][10]; ... delete [] tab;
Aczkolwiek głowy nie dam bo używam C. W razie co zerknij na google jak jest poprawna składnia (alokacji tablicy przez new) ;).
// edit: na pewno coś w ten deseń zadziała:
int **tab = new int*[10000]; int i; for (i=0; i< 10000; i++) tab[i] = new int[10]; // ... for (i=0; i< 10000; i++) delete[] tab[i]; delete[] tab;
A to wcześniej to nie wiem czy podobnie będzie chodzić ;P.
// Pamiętaj że stosowanie jakichkolwiek zmiennych globalnych nie jest dobrym pomysłem ;).
Użytkownik Ali240 edytował ten post 03 styczeń 2008, 23:27
int t[100000][10]; int t2[100000][10]; bool t3[1000000];
Ekhhh tak jak bryn radzil umiesicilem to przed mainem i dalej mam naruszenie pamięcie (wyslij raport o bledach...) :(
EDIT zaspanie... poprawilem moj blad i wszystko dziala :)
Dzieki bryn i Ali240 :)
Użytkownik nosiek edytował ten post 04 styczeń 2008, 00:19