Sprawdzenie, czy tablica została utworzona.
Ostatnio zmodyfikowano 2012-11-20 22:12
KamilW Temat założony przez niniejszego użytkownika |
Sprawdzenie, czy tablica została utworzona. » 2012-11-17 11:05:39 Witam, mam do wykonania następujące zadanie. Najpierw tworzę funkcję odpowiedzialną za stworzenie tablicy i jej wypełnienie. Z tym sobie poradziłem. W drugim punkcie muszę stworzyć funkcję wypisującą co drugi element tablicy a w trzecim, wypisującą elementy parzyste. Wszystko umieszczam w MENU opartym na do...while (czyli zadanie pierwsze tworzenie tablicy, użytkownik podaje liczbę elementów). Radzę sobie ze wszystkim, jednak jest jeden kruczek, którego nie mogę ogarnąć. Otóż do drugiej i trzeciej funkcji trzeba dodać sprawdzenie czy tablica została już wygenerowana, a gdy nie wyświetlić błąd. Wie ktoś, jak to zrobić? |
|
cyklopek11 |
» 2012-11-17 13:17:14 Rozumiem, że tworzysz tablicę w funkcji 1 dynamicznie i przekazujesz "komuś" wskaźnik na nią? |
|
crash |
» 2012-11-20 19:58:48 Sprawdź obie opcje: int * ptr;
if( ptr ) cout << "Przydzielona pamiec.\n"; else cout << "Pamiec nieprzydzielona.";
2. int * ptr = new int[ 100 ];
if( ptr ) cout << "Przydzielona pamiec.\n"; else cout << "Pamiec nieprzydzielona.";
|
|
Mrovqa |
» 2012-11-20 22:12:20 @crash 1. Będzie NULLem, ale tylko wtedy, gdy wskaźnik jest globalny, statyczny bądź zainicjalizowany NULLem. 2. int * ptr = new int[ 100 ];
Gdy się nie powiedzie to jest rzucany wyjątek std::bad_alloc. By zwracało NULLa w przypadku niepowodzenia trzeba napisać: int * ptr = new( std::nothrow ) int[ 100 ];
|
|
« 1 » |