#1 2011-04-02 23:36:27

OskarF

Użytkownik

Zarejestrowany: 2011-02-03
Posty: 38
Punktów :   

5.4

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

 

Stopka forum

RSS
Powered by PunBB
© Copyright 2002–2008 PunBB
Polityka cookies - Wersja Lo-Fi


Darmowe Forum | Ciekawe Fora | Darmowe Fora
przegrywanie kaset vhs łódz Ciechocinek pokoje https://szamboczerwionka.pl/ absolwencilo