new i tablice

0

coś mnie ostatnio zdziwiło
program typu :
int n;

cin >> n ;

int* tablica = new int [n][n];

nie chciał działać

a z tablica
int* tablica = new int[n] ;

działał

nie wiem o co chodzi

0
int (*tablica)[ROZMIAR_B] = new int[ROZMIAR_A][ROZMIAR_B];
0

int (*tablica)[ROZMIAR_B] = new int[ROZMIAR_A][ROZMIAR_B];

to nie może działać bo rozmiar b nie jest znany podczas kompilacji nie jest constant a jest pobierany przez cin

inny myk??

0

Zrobiles w ten sposob dynamiczna tablice jednawymiarowa. Jednak, jeli chesz zrobic np duwymiarowa to musszisz zrobic to nieco inaczej, torząc wksaznik, na wskaznik, wyglodaloby to mniejwiecej tak:

int **tablica; // wskaznik na wskaznik
int y, x, i;      

cout << "Podaj wiersze: ";
cin >> y;
cout << "Podaj kolumny: ";
cin >> x;

tablica = new  int*[y];

// pamiec dla wierszy
for(i=0; i < y; i++)
tablica[i] = new int[x];
   

I teraz jedna uwaa jak robisz dynamiczna alokcje pamieci, pamietaj, aby przed zakonczeniem programu zwolnic zaalokowana pamiec, uzywajac delete.

0

I teraz jedna uwaa jak robisz dynamiczna alokcje pamieci, pamietaj, aby przed zakonczeniem programu zwolnic zaalokowana pamiec, uzywajac delete.

Totalny bezsens. Po co? Zeby wkurzac usera, ktory bedzie czekal pol godziny az sie program zamknie?

0

Totalny bezsens. Po co? Zeby wkurzac usera, ktory bedzie czekal pol godziny az sie program zamknie?

eee w takim razie co proponujesz ? ;P

0

Totalny bezsens. Po co? Zeby wkurzac usera, ktory bedzie czekal pol godziny az sie program zamknie?

Nie no bez przesady - to nie trwa aż tak długo, a podstawowa zasada inżynierii programowania każe posprzątać po sobie

0

Totalny bezsens. Po co? Zeby wkurzac usera, ktory bedzie czekal pol godziny az sie program zamknie?

Nie no bez przesady - to nie trwa aż tak długo

Dla jednej małej tablicy nikt nie zauważy, ale jeśli tego jest kilkadziesiąt/kilkaset MB i wyszło na swapa, to czas może być rzędu minut... Poza tym każdy następny program będzie się uruchamiał dużo wolniej, bo takie coś pięknie czyści cache'a, nie mówiąc o tym, że ileś stron innych aplikacji przy okazji wyląduje na swapie. Zupełnie niepotrzebnie.

Proponuję więc nie czyścić pamięci tuż przed wyjściem, bo system zrobi to lepiej. Oczywiście nie zwalnia to nikogo z oszczędnego zarządzania pamięcią W TRAKCIE pracy aplikacji.

1 użytkowników online, w tym zalogowanych: 0, gości: 1