小编Coş*_*niz的帖子

memcpy 的奇怪行为

我想将一个无符号长整数逐字节复制到字符缓冲区。如果我使用注释下的行,则不会将其复制到缓冲区。

    char buf[128];
    //unsigned long int_val = 268435456;
    unsigned long int_val = 293456376;

    cout << "Value of int_val: " << int_val << endl;

    memset(buf, 0, sizeof(buf));

    memcpy(buf, &int_val, sizeof(long));
    cout << "Value after unsigned long int copy - buf: " << buf << endl;

    const int len = strlen(buf);
    cout << "buf" << endl << "====" << endl;
    for (int i = 0; i < len; i++)
    {
        printf("%3d (0x%02X)\n", buf[i], buf[i]);
    }

Run Code Online (Sandbox Code Playgroud)

以下是每个值的两次运行的输出:

Value of int_val: 268435456
Value after …
Run Code Online (Sandbox Code Playgroud)

c++ memcpy

2
推荐指数
1
解决办法
167
查看次数

标签 统计

c++ ×1

memcpy ×1