gpt4 book ai didi

c - 是否可以将全零分配给 128 位的所有位?

转载 作者:太空宇宙 更新时间:2023-11-04 05:07:42 24 4
gpt4 key购买 nike

int main()
{
int* p= (int*)malloc(8);

for(i=0;i<128;i++)
p=0;

}

我想为所有 128 位分配全零。上面的代码是否正确?我想澄清一下。我的目标是将 128 位分配给一个变量,并将所有 0 分配给所有 128 位。

最佳答案

没有。您只需将 0 分配给指针本身(这样您就会丢失它并泄漏内存)。使用这个:

(编辑:正如 Jim Balter 指出的那样,处理非 8 位字符很容易:)

int main()
{
unsigned n = (128 + CHAR_BIT - 1) / CHAR_BIT;
unsigned char *p = malloc(n);

for(i = 0; i < n; i++)
p[i] = 0;
}

但这是重新发明轮子。为什么不使用标准函数 memset()

int main()
{
unsigned n = (128 + CHAR_BIT - 1) / CHAR_BIT;
unsigned char *p = malloc(n);

memset(p, 0, n);
}

关于c - 是否可以将全零分配给 128 位的所有位?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11863172/

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