Flinch Napisano Styczeń 5, 2019 Autor Zgłoś Udostępnij Napisano Styczeń 5, 2019 Zmienna typu bool zajmuje 1 bit w pamięci, więc 8 takich zmiennych to 1 bajt. cout << sizeof (bool [8]) Powyższe polecenie wyświetli 8, zamiast 1, tak jakby bool zajmowało tyle samo miejsca w pamięci co char. Jak zrobić, żeby bool zajmował tyle ile trzeba? Cytuj Link do komentarza Udostępnij na innych stronach More sharing options...
Nemo Napisano Styczeń 5, 2019 Zgłoś Udostępnij Napisano Styczeń 5, 2019 Według mnie bool "zajmuje" 1bajt mimo ze mozna go zapisac w jednym bicie ;) Cytuj Link do komentarza Udostępnij na innych stronach More sharing options...
Aspect Napisano Styczeń 6, 2019 Zgłoś Udostępnij Napisano Styczeń 6, 2019 Niestety, zmienna typu bool zajmuje przynajmniej jeden bajt - nie ma fizycznej możliwości reprezentacji jakiegokolwiek typu o liczbie bitów mniejszej niż osiem. Ja myślałem już nad tym "marnotrawstwem pamięci" (chociaż w dzisiejszych czasach, przy możliwościach dzisiejszych komputerów nikt na to nie zwraca uwagi) i jedyne co mi przyszło do głowy, to stworzenie sobie własnego typu (klasy) TablicaBitów. Trzeba wtedy przeciążyć sobie operator indeksowania (operator[]) i kontrolować wielkość tej tablicy. Mimo wszystko jednak jednoelementowa tablica bitów będzie zajmowała tyle samo co ośmioelementowa (1 bajt), a dziewięcioelementowa tyle samo co szesnasto... itd. :? Cytuj Link do komentarza Udostępnij na innych stronach More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.