簡體   English   中英

將 uint_32 數組的字節復制到 unsigned char

[英]Copying bytes of array of uint_32 to unsigned char

我正在嘗試使用 memcpy 將 state 的字節復制到字符狀態

uint32_t state[3] = {0x00000300, 0x00001100, 0x00022200};
unsigned char charstate[1420];
memcpy(charstate, (unsigned char *)state, sizeof(uint32_t)*3);
printf("charstate: %s", charstate);

但是 printf 語句沒有返回任何內容。 你能幫我把這個 state 數組復制到字符狀態嗎?

復制不需要幫助,您已經成功了。
printf()沒有 output 的問題是由格式說明符"%s"僅打印在第一個 0 值之前找到的字符引起的。
比較https://en.cppreference.com/w/c/io/fprintf

查看您復制的數據,第一個 0 值位於 0x000003 00或 0x 00 000300 中,具體取決於您的環境中適用的字節序。
printf("%s",...)遇到的第一個值已經是 0。因此它在輸出任何內容之前停止。

如果第一個值不是 0,那么您可能也不會得到預期的 output。 對於可打印字符,您只會得到 output ,這似乎是您數據中的一種速率,這可能也不是您所期望的。

您可能想要數據的十六進制表示,Andy 在評論中提出了一種方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM