Napisz funkcje void ilepamieci() która sprawdza jaką największą tablice znaków można utworzyć dynamicznie, przy założeniu że rozmiar tablicy ma być potęgą liczby 2. Funkcja powinna generować wydruk podobny do poniższego: Proba przydzielenia: 2 bajtow, wynik: OK Proba przydzielenia: 4 bajtow, wynik: OK Proba przydzielenia: 8 bajtow, wynik: OK Proba przydzielenia: 16 bajtow, wynik: OK Proba przydzielenia: 32 bajtow, wynik: OK Proba przydzielenia: 64 bajtow, wynik: OK Proba przydzielenia: 128 bajtow, wynik: OK ... Proba przydzielenia: 268435456 bajtow, wynik: OK Proba przydzielenia: 536870912 bajtow, wynik: OK Próba przydzielenia: 1073741824 bajtów, wynik: OK Próba przydzielenia: 2147483648 bajtów, wynik: Nie powiodla sie Dla powyższej funkcji proszę odpowiednio uzupełnić główną część programu: int main() { ilepamieci(); return 0; }
#include <iostream> #include <cmath>
using namespace std;
void ilepamieci();
int main() { ilepamieci();
cin.get(); return 0; }
void ilepamieci() { int i=1; char * tablica; do { unsigned int potega = (unsigned int) pow(2,i); tablica = new (nothrow) char[potega]; cout<<"Proba przydzielenia: "<<potega<<" bajtow, wynik: "; if( tablica!=0 ) cout<<"OK."<<endl; i++; delete [] tablica; } while( tablica!=0 ); cout<<"Nie powiodla sie."<<endl; }
|