Seite 1 von 1

qbytearray in passende häppchen aufteilen

Verfasst: 30. Oktober 2007 08:35
von CaptnChaos
Hi!
Ich steh grad aufm sclauch....
ich muss einen qbytearray, den ich per udp versenden möchte, in kleiner häppchen von 8kb aufteilen.
ich wollte das über einen QByteArray-Array machen, aber iwie klappt das nicht so recht... ich bekomme immer einen core-dump
das ist mein code:

Code: Alles auswählen

QByteArray data = udpPackage;
	QByteArray dataArray[(int)ceil(data.size()/32)+1];
	for(int i = 0; i < ceil(data.size()/32)+1; ++i)
	{
		dataArray[i] = data.mid(i*32,32);
	}

Verfasst: 30. Oktober 2007 09:03
von upsala
Dann wird mal deinen Debugger an und sieh dir mal an, welchen Wert 'i' hat, wenn die Schleife das letzte mal durchlaufen wird.

Verfasst: 30. Oktober 2007 09:08
von CaptnChaos
hab keinen debugger..........

Verfasst: 30. Oktober 2007 09:25
von macman
Dann leg dir einen zu, ohne wirst Du nicht glücklich.

Verfasst: 30. Oktober 2007 10:08
von Christian81
ceil() - das ist ja lustig... hast Du nicht noch ein paar mathematische Funktionen für Fliesskommazahlen die Du verwenden kannst ? :lol:

Wie wärs mit was einfachem wie

Code: Alles auswählen

int i = 0;
QVector<QByteArray> vBa;
while(i < udpPackage.size() - 32) {
  vBa.append(udpPackage.mid(i, 32);
  i += 32;
}
vBa.append(udpPackage.mid(i);