2010-08-22 18 views

Respuesta

4

El tipo equivalente más cercano en C++ sería una matriz creada dinámicamente de "char sin signo" (a menos que esté ejecutando en un procesador que define un byte como algo distinto de 8 bits).

Así, por ejemplo

en C#

byte[] array = new byte[10]; 

en C++

unsigned char *array = new unsigned char[10]; 
+0

escribe que eres, gracias!) (Me ayudó para mi visual-C++.net library) – Rella

+2

¿No quiere decir 'byte [] array = new byte [10]'? – Anthony

+0

Sí, gracias por esa captura. Me gustaría señalar que hay muchos lugares donde difieren las series C++ y C#. Si bien no se puede cambiar el tamaño de ambos, C# le dará un error si intenta acceder a más datos que los disponibles. Si tienes suerte, C++ podría bloquearse. Además, C# puede decirle el tamaño de la matriz en cualquier momento, C++ no puede decirle qué tan grande es la matriz una vez creada, debe recordar cómo. – MerickOWA

12

byte[], en C#, es una matriz de enteros de 8 bits sin signo (byte).

Un equivalente sería uint8_t array[].

uint8_t se define en stdint.h (C) y cstdint (C++), si no se proporcionan en su sistema, puede descargarlos fácilmente o definirlos usted mismo (consulte this SO question).

+0

Aunque no nombra a sus variables 'array'. :) –

+3

o más convencionalmente, 'unsigned char' –

+3

@theatrus, no,' char' no garantiza que sea un tipo de 8 bits. –

6

En C++ estándar, char, signed char y unsigned char son tres tipos CHAR disponibles. char quizá signed o unsigned, por lo tanto:

typedef signed char sbyte; 
typedef unsigned char byte; 

byte bytes[] = { 0, 244, 129 }; 
Cuestiones relacionadas