2010-08-22 4 views

Répondre

4

Le type équivalent le plus proche en C++ serait un tableau créé dynamiquement de "unsigned char" (sauf si vous exécutez sur un processeur qui définit un octet comme autre chose que 8 bits).

Ainsi, par exemple

en C#

byte[] array = new byte[10]; 

en C++

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

écrivez vous êtes, merci!) (M'a aidé pour mon visuel-C++.net library) – Rella

+2

Vous ne voulez pas dire 'byte [] array = new byte [10]'? – Anthony

+0

Oui merci pour cette prise. Je voudrais souligner qu'il y a beaucoup d'endroits où les tableaux C++ et C# diffèrent. Bien que les deux ne puissent pas être redimensionnés, C# vous donnera une erreur si vous essayez d'accéder à plus de données que ce qui est disponible. Si vous êtes chanceux, C++ pourrait planter. En outre, C# peut vous dire la taille du tableau à tout moment, C++ ne peut pas vous dire quelle est la taille du tableau une fois qu'il a été créé, vous devez vous en rappeler comment. – MerickOWA

12

byte[], en C#, est un tableau d'entiers 8 bits non signés (byte). Un équivalent est uint8_t array[]. Est défini dans stdint.h (C) et cstdint (C++), s'ils ne sont pas fournis sur votre système, vous pouvez facilement les télécharger, ou les définir vous-même (voir this SO question).

+0

Bien que ne nomme pas vos variables 'array'. :) –

+3

ou plus conventionnellement, 'unsigned char' –

+3

@theatrus, non,' char' n'est pas garanti être un type 8 bits. –

6

Dans la norme C de, char, signed char et unsigned char sont trois types char disponibles. char peut-être signed ou unsigned donc:

typedef signed char sbyte; 
typedef unsigned char byte; 

byte bytes[] = { 0, 244, 129 }; 
Questions connexes