Einzelnen Beitrag anzeigen

Tubos

Registriert seit: 25. Feb 2004
Ort: Yspertal (Niederösterreich)
1.014 Beiträge
 
Delphi 7 Personal
 
#2

Re: Integer lesen, wie in C

  Alt 29. Mai 2005, 19:09
Zitat:
Beispiel: int[2] -> liest das 2te Byte aus dem Integer.
Das funktioniert in C++ aber nicht so!
Ganz abgesehen davon dass der Index bei 0 beginnt (das zweite Byte wäre also Index 1)...

Folgendes:
Code:
int i;
unsigned char ZweitesByte=i[1];
liefert einen Compiler Fehler.
Wenn du das hier meinst:
Code:
int *i;
int zahl=5;
i=&zahl;
unsigned char ZweitesByte=i[1];
so lässt sich das zwar kompilieren, aber in ZweitesByte steht danach nicht das zweite Byte drinnen sondern das fünfte weil die Größe des Integers (4 Byte) mit der Indexnummer multipliziert wird! Integer hat aber nur 4 Byte, sodass das fünfte Byte irgendwas von deinem Programm ist, was eben danach im RAM steht.
Willst du eine Zahl byteweise auslesen, so lässt sich das in C++ mit einem union lösen, das sowohl einen int-wert als auch ein Array von 4 char-Werten enthält. Möglicherweise gibts das in Delphi auch.


(Bitte um Korrektur falls da irgendwas nicht stimmt )
Lukas
  Mit Zitat antworten Zitat