[英]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.