Je confirme q´un byte (octet) n´est que de 8 bits.
Si tu veux faire un tableau de quelques booleens, utilise donc un tableau de char : ça te prendra un octet entier par boolean, mais ça aura le mérite d´etre rapide.
Evidemment, il se peut que tu aies cruellement besoin d´optimiser la mémoire (mais en as tu vraiment besoin ? Cela est utile si tu veux faire un tableau de plusieurs dizaines de millions de booleens au moins) ou alors des millions de tableaux plus petit.
Dans ce cas la, tu as plusieurs possibilités :
- le bitset proposé par Dnob, mais qui n´est pas encore completement standard : il est admis que dans les versions étendues de la STL (la STL de SGI)
- faire ta propre classe de bitset (c´est amusant a faire, a grand coup de & | ~ ...)
- si tu fais des paquets de 32 bits, tu peux utiliser un int comme conteneur par exemple, et faire une gestion de flags, a coup de piping | souvent associé a un tas de define.
Pour chacune de ces méthodes, il est nécessaire, pour extraire le bit, d´appliquer des masques.
ça va vite, mais ça va moins vite que si tu as un tableau de char que tu accedes directement !
J´ajoute que le type "bool" en C est en fait un int : jamais le C ne manipule nativement qu´un seul bit a la fois.
Mais pour conclure, as tu vraiment besoin d´otpimiser la mémoire a ce point ? Sinon -> Tableau de char
( char ou byte)