BoolArray und true/false



  • Hoi!

    Also ich habe folgendes Problem:
    per new wird im konstruktor ein Boolsches Array angelegt. Eine spätere Funktion verwendet dies um den Status eines COM-Port Pins darin zu speichern.
    Die Funktion zum ablesen des Pins funktioniert auch wunderbar, aber beim speichern im Array läuft irgendetwas schief!

    pbTarget[i] = GetCTS();
    

    GetCTS() liefert true/false zurück. sobald aber einmal false in das Array kommt zeigt MSVC++ nurnoch "111" (als Bsp) obwohl das Array voher 8/16 bit lang war.
    Versuche ich jetzt wieder ein true zu speichern passiert garnichts!
    Was geht da schief??



  • Wieso setzt du nicht direkt bits ?
    Schreib doch eine klasse, die ein array aus chars verwaltet,
    wo jedes bit gesetzt oder nicht gesetzt wird, so kannst
    du dann einen BitVektor realisieren. In der C't stand dieses Jahr
    schon mal eine Klasse dafür.

    Devil



  • Original erstellt von devil81:
    so kannst du dann einen BitVektor realisieren. In der C't stand dieses Jahr
    schon mal eine Klasse dafür.

    Und warum nicht std::vector<bool> bzw. std::bitset???



  • weil die dann von der ct sonst nix mehr zu tun hätten *gg* die müssen ihre seiten ja schließlich voll bekommen 😉



  • ich hab in meiner Klasse zur datenübertragung von einer wetterstation mehrere bool array, und die sollen gefüllt werden.
    1. bleibt nichtmehr genug Zeit um das jetzt alles abzuändern
    2. muss es doch auch mit den bool gehen
    und 3. hab ich kein plan was ihr da meint ___



  • Ein vector<bool> ist das selbe wie du versuchst, nur halt dynamisch. Der Speicher hängt am Stück und jedes bool in dem vector belegt nur ein Bit (bzw. es werden immer 8 angefordert bis die voll sind und dann wieder 😎



  • werd mich damit mal beschäftigen, danke für den Tip!

    Aber trotzdem würd ich gern wissen warum der Compiler da stress. Gibts dafür ne logische erklärung??



  • *maaaf* der debugger des MSVC++ hat es falsch angezeigt, klappt alles! 🙂


Anmelden zum Antworten