我有一個字符數組,並存儲短整數它: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