2009-05-19 47 views
14

Bir ağ uygulamasında hata ayıklama yapıyorum.hardcode bayt dizisi C

Uygulamanın çalışması için değiş tokuş edilen bazı verileri simüle etmem gerekiyor. C++ sen Ancak

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

gibi bir şey yapabilirsiniz, ben bu sözdizimi için bir C eşdeğer bulmak için görünmüyor olabilir.

Temel olarak yalnızca bir diziyi sabit kodlanmış değerlerle doldurmak istiyorum.

cevap

30

Sen C aynı şeyi yapabilir, ama sen sizeof operatörü ile boyutunu almak böylece, tip char[] değil char* ait beyan etmelidir:

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

C++ da "char foo []" sözdizimini kullanmanız gerektiğini unutmayın. –

2

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

ile

5

deneyin:

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

:

C++ kaynak kodu uyumluluğu bir gerekliliktir

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

, daha iyi bu yapıyı kullanmayın, çünkü bu - afaik - C++ standardının bir parçası değil.