gpt4 book ai didi

c - memset 未填充数组

转载 作者:太空狗 更新时间:2023-10-29 15:12:43 25 4
gpt4 key购买 nike

 u32 iterations = 5;
u32* ecx = (u32*)malloc(sizeof(u32) * iterations);

memset(ecx, 0xBAADF00D, sizeof(u32) * iterations);
printf("%.8X\n", ecx[0]);

ecx[0] = 0xBAADF00D;
printf("%.8X\n", ecx[0]);

free(ecx);

很简单,为什么我的输出如下?

0D0D0D0D
BAADF00D

附言:u32 是 unsigned int 的简单类型定义

编辑:

  • 使用 gcc 4.3.4 编译
  • 包含string.h

最佳答案

memset 的第二个参数类型为 int,但却是 really an unsigned char . 0xBAADF00D 转换为 unsigned char(最低有效字节)是 0x0D,所以 memset 用 0x0D 填充内存。

关于c - memset 未填充数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1418857/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com