繁体   English   中英

在C中初始化unsigned char数组

[英]Initialize unsigned char array in c

我有以下代码初始化无符号字符数组:

     unsigned char ultralightAtr[] = {0x3b,0x8f,0x80,0x01,0x80,0x4f,0x0c,0xa0,0x00,0x00,0x03,0x06,0x03,0x00,0x03,0x00,0x00,0x00,0x00,0x68}; 

当我在gdb中检查ultralightAtr时,我没有得到相同的值:

 (gdb) x/20x ultralightAtr
 0x7fffffffdd40:    0x70    0xdd    0xff    0xff    0xff    0x7f    0x00    0x00
 0x7fffffffdd48:    0x70    0x19    0xbd    0xf7    0xff    0x7f    0x00    0x00
 0x7fffffffdd50:    0x00    0xc7    0xfd    0xf7
 (gdb) 

我在初始化数组时做错了什么,还是在gdb中打印内存内容的方式有问题?

地址和ultralightAtr的内容均指示它是一个具有自动存储的本地变量(也称为 )。 您可能会在定义它的函数中运行其初始化代码之前,先用gdb检查其值。 您是否只是在函数地址处设置了一个断点并在其中发出了x命令?

如果未在函数中修改此数组,则可以将其static以便在加载时(而不是每次进入函数时)对其进行初始化。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM