我有一个字符数组,并存储短整数它:C如何打印存储在char数组中的短整数?
char buf[50];
short int num = 12;
填补它与的memcpy:
memcpy(buf, &num, 50);
,然后我试图打印出:
for(i=0; i <50;i++) {
printf("%hd|",buf[i]);
}
我认为%hd
应该是打印出来的正确说明符。但我的输出如下:
12 | 0 | 0 | 0 | 12 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 12 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 12 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 12 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 12 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 12 | 0 |
看来他们是我的内容之间的7字节空间()。但我想在每个单字节中存储“12”。应该可以在char数组中存储和缩短,我的意思是1个字节的最大表示是256.我做错了什么? ...寻找一些好建议=)
在linux下开发。
@GrzegorzSzpetkowski,目的地是buf,不是号码 – Vincent 2014-11-01 15:29:14
您是否编译过所有警告和调试信息('gcc -Wall -Wextra -g')?如果你这样做了,编译器会警告你! – 2014-11-01 15:35:21
我没有得到任何警告mhh – Leviathan 2014-11-01 15:51:44