我有十六進制值0x48656c6c6f
其中每個字節表示字符串"Hello"
中每個字符的ASCII值。我也有一個char
數組,我想要插入這些值。爲什麼memcpy從int到char不起作用?
當我有一個較小的十六進制值(例如,0x48656c6c
,它代表"Hell"
)時,打印出char
數組給出了正確的輸出。但下面的代碼打印"olle"
(在小端)但不是"olleH"
。爲什麼是這樣?
#include <iostream>
#include <cstring>
int main()
{
char x[6] = {0};
int y = 0x48656c6c6f;
std::memcpy(x, &y, sizeof y);
for (char c : x)
std::cout << c;
}
是int 32位還是64? – user1810087
@itwasntpete 32 –
編譯器有警告。使用它們。 –