gpt4 book ai didi

c - 结构 c 中的 memset 数组

转载 作者:行者123 更新时间:2023-12-02 22:43:18 28 4
gpt4 key购买 nike

我正在尝试 memset 存在于结构中的整数数组:

typedef struct _xyz {
int zList[9000];
} xyz;

int dll_tmain(void)
{
xyz *Xyz = (xyz *) calloc(10, sizeof(xyz));
memset((&Xyz[0])->zList, 1, 9000);
}

我在 memset() 中尝试了很多变体,但都无济于事。而不是成为初始化为1,数字是一些巨大的值;

最佳答案

请记住,memset 将数组的每个 byte 设置为相同的值。因此,您正在将值为 1 的字节复制到数组的前 9000 个字节。假设 4 字节整数,这意味着您正在分配一个值为 0x01010101 的 int。但是,更重要的是,您没有分配给整个数组,只是分配给它的前 1/4,同样假设是 4 字节整数。

你不能用memset做你想做的事。请改用 for 循环。

关于c - 结构 c 中的 memset 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10440239/

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