gpt4 book ai didi

c++ - 为什么 memset() 放在循环体内时不能正常工作?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:54:18 24 4
gpt4 key购买 nike

昨天我用 C++ 编写了一小段代码,其中包含一个循环和一个数组。在程序中,每次循环重新开始时我都需要重置数组。但是,如果我使用

memset(sum,sizeof(sum),0);

那么数组就不会被重置为全0。对于这个程序我使用了:

for (i=0;i<sizeof(sum)/sizeof(int);i++) sum[i]=0;

相反。

但是,我认为循环不像函数那样清晰,它需要一个额外的变量,更不用说这比 memset() 函数的魔法还要酷上百万倍。各位大神能给个启发吗?

最佳答案

您实际上是将 sum 的大小写入前 0 个字节。您应该改为执行 memset(sum,0,sizeof(sum))

(换句话说,参数是目标数据长度,您提供的数据和长度的顺序错误。)

关于c++ - 为什么 memset() 放在循环体内时不能正常工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5706173/

24 4 0