关于memset函数的参数问题

cxy_xff 2016-06-02 03:37:11
int a[100];
memset ( a,0,sizeof(int) );
是只将a[0]置为0吗?
要想把整个数组都初始化为0,以下这两种方法都对吗:
1. memset(a,0,sizeof(a));
2. memset(a,0,sizeof(int)*100);

对于结构体、类或数组初始化时,第三个参数都必须要乘以块大小才能实现全部置零吗?
比如:
class point
{
public:
double x, y;
};
point temp[100];
memset(temp,0,sizeof(point)*100);
对于类对象也是必须这样才行吗?
...全文
191 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
penghuahuijuan 2016-06-02
  • 打赏
  • 举报
回复
应该是正确的
Saleayas 2016-06-02
  • 打赏
  • 举报
回复
memset(&Array, 0, sizeof(Array))
小灸舞 2016-06-02
  • 打赏
  • 举报
回复
1. memset(a,0,sizeof(a));
2. memset(a,0,sizeof(int)*100);
都对。

要乘块大小。

写成这样方便点:
memset(temp,0,sizeof(temp));
jiqiang01234 2016-06-02
  • 打赏
  • 举报
回复
结构体直接用sizeof(A)

64,637

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧