2009-05-19 11 views
14

Estoy depurando una aplicación de red.matriz de bytes de código duro en C

Tengo que simular algunos de los datos intercambiados para que la aplicación funcione. En C++ se puede hacer algo como

char* myArray = { 0x00, 0x11, 0x22 }; 

Sin embargo, me parece que no puede encontrar un equivalente C de esta sintaxis.

Básicamente solo quiero llenar una matriz con valores codificados.

Respuesta

30

Usted puede hacer lo mismo en C, pero que se debe declarar su tipo de char[], no char*, de modo que usted puede obtener su tamaño con el operador sizeof:

char myArray[] = { 0x00, 0x11, 0x22 }; 
size_t myArraySize = sizeof(myArray); // myArraySize = 3 
+8

Tenga en cuenta que también debe usar la sintaxis "char foo []" en C++ –

2

Does not

char myArray[] = {0x00, 0x01,0x02}; 

trabajo?

5

Trate con:

char myArray[] = { 0x00, 0x11, 0x22 }; 
4

Sólo por el bien de la integridad, la C99 también se puede utilizar literales compuestos:


    char *myArray = (char []) {0x00, 0x11, 0x22 }; 

Si la compatibilidad de código fuente en C++ es un requisito, es mejor que no utilice este constructo, porque es - afaik - no es parte del estándar C++.

Cuestiones relacionadas