[gelöst]QBitArray kann kein einzelnes Bit testen

Alles rund um die Programmierung mit Qt
Antworten
twessels
Beiträge: 18
Registriert: 28. Mai 2007 13:23
Kontaktdaten:

[gelöst]QBitArray kann kein einzelnes Bit testen

Beitrag von twessels »

Hi,
ich glaube meine Qt4.3-Linux-Version hat einen Bug. Könnte es vielleicht mal kurz jemand testen? Weil unter Windows läufts ohne Probleme...

Code: Alles auswählen

#include <QCoreApplication>
#include <QBitArray>

int main( int argc, char **argv )
{
	QCoreApplication app(argc, argv);
	QBitArray ba(1);
	ba.setBit(0,true);
	ba.setBit(1,false);
	
	if(ba.testBit(0) && !ba.testBit(1))
		qDebug("they are unequal!");
	
	return app.exec();
}
~/Desktop/bitarray$ ./bitarray
ASSERT: "i >= 0 && i < size()" in file /usr/include/qt4/QtCore/qbitarray.h, line 107
Aborted (core dumped)
Zuletzt geändert von twessels am 25. Dezember 2007 15:28, insgesamt 1-mal geändert.
Bitte seid so nett und ändert den Titel von Beiträgen die gelöst wurden, auf [gelöst] Beitragstitel
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

Du gibst eine Größe von einem Bit vor und willst 2 Bit bearbeiten?
twessels
Beiträge: 18
Registriert: 28. Mai 2007 13:23
Kontaktdaten:

Beitrag von twessels »

nein, das war nur ein Beispiel
statt

Code: Alles auswählen

if(ba.testBit(0) && !ba.testBit(1)) 
hätte ich auch

Code: Alles auswählen

if(ba.testBit(0))
schreiben können. Es macht aber keinen Unterschied...

Falls du

Code: Alles auswählen

 QBitArray ba(1);
meinst. Es erzeugt sehr wohl 2 Bits ba[0] und ba[1] :)
Bitte seid so nett und ändert den Titel von Beiträgen die gelöst wurden, auf [gelöst] Beitragstitel
slash-ex
Beiträge: 239
Registriert: 30. März 2005 21:40

Beitrag von slash-ex »

nein, eigentlich dürfte es nur ein bit erzeugen! am index 0.... :roll: manchmal stürzt das dann bei zugriffen auf den nächsten bereich ab, manchmal nicht... bei solchen primitiven speciher-strukturen fällt das nur nicht so sehr ins gewicht.
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

ASSERT: "i >= 0 && i < size()"
Man sollte halt mal die Fehlermeldung richtig lesen.

Und die Anwendung stürzt nicht ab, sie wird von der Qt-Bibliothek wegen einer ungültigen Operation beendet und zwar mittels Q_ASSERT...
twessels
Beiträge: 18
Registriert: 28. Mai 2007 13:23
Kontaktdaten:

Beitrag von twessels »

Danke. Ihr hattet doch Recht, es lag an der Array-Größe.
Ich hatte jetzt schon öfters das Problem, dass das Kompilieren unter Linux schwerer fällt als unter Windows. gcc ist da wohl strikter eingestellt

so long...
Bitte seid so nett und ändert den Titel von Beiträgen die gelöst wurden, auf [gelöst] Beitragstitel
Antworten