New i delete
Ostatnio zmodyfikowano 2015-03-30 23:27
Anim Temat założony przez niniejszego użytkownika |
New i delete » 2015-03-30 20:14:07 Hej. Chciałbym spytać, czy poprawnie zwalniam za pomocą operatora delete pamięć w poniższym kodzie? Czy faktycznie zwalniam za pomocą dwukrotnego użycia delete pamięć zarezerwowaną dla tablicy dwuwymiarowej przy użyciu operatora new int? int main() { int n, k, C; printf( "Prosze podaj rozmiar tablicy dwuwymiarowej." ); printf( " Wiersze n = " ); std::cin >> n; printf( "Kolumny k = " ); std::cin >> k; int ** X = new int *[ n ]; for( int i = 0; i < n; i++ ) { X[ i ] = new int[ k ]; } dane( & n, X ); pisz_tab( & n, X ); zamiana( & n, X ); pisz_tab( & n, X ); getch(); delete[] X; delete[] * X; return 0; }
|
|
pekfos |
» 2015-03-30 21:23:48 Nie. |
|
michal11 |
» 2015-03-30 21:36:50 Tablice wielowymiarowe dealokuje się w odwrotnej kolejności co ich alokacja. |
|
Anim Temat założony przez niniejszego użytkownika |
» 2015-03-30 22:09:16 Serdecznie dziękuję za odpowiedź : "NIE" ;p Bardzo pomocna ;p Chyba już wiem. W taki sposób (?) : for( int i = 0; i < n; ++i ) { delete[] X[ i ]; } delete[] X; X = NULL;
|
|
michal11 |
» 2015-03-30 23:27:33 Wygląda ok. Nullowanie nie jest konieczne. |
|
« 1 » |