昨天我用 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/