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;
}
Offline