2012-04-10 3 views
0

In einem C++ - Programm habe ich ein char *, das auf den Anfang eines Arrays zeigt, das die BUFFER_SIZE-Anzahl von Zeichen enthält (jedes Zeichen hat die Größe eines Bytes). Ich möchte diesen Code nun in einer NS3-Simulation verwenden, welche Pakete als Eingabe ein uint8_t const * nehmen, das auf einen Puffer zeigt.Wie lässt sich ein uint8_t const * auf die gleiche Adresse wie ein char * zeigen?

Was soll ich tun, um ein 'uint8_t const *' zu erstellen, das auf den zuerst genannten Puffer zeigt?

Antwort

2

Sie müssen entweder verwenden reinterpret_cast:

int main() { 
char buffer[10]; 
reinterpret_cast<unsigned char const *>(buffer); 
} 

oder eine Besetzung C-Stil verwenden:

int main() { 
char buffer[10]; 
(unsigned char const *)buffer; 
} 
+0

ist 'const_cast' in diesem Fall notwendig oder ist es Compiler abhängig? http://codepad.org/nDZCA2zX – keety

+0

Weder. Es ist überhaupt nicht erforderlich. Ich muss mich selbst verwirrt haben, als ich es getestet habe. Ich habe meine Antwort aktualisiert. Vielen Dank! –

Verwandte Themen