社区
C++ 语言
帖子详情
关于memset函数
gergerman
2011-02-01 11:54:03
弱弱的问这个问题。上网搜了搜,发觉看不懂……
举个例,如果我想将一个二维数组a[10][10]全部置零,我应该怎么用呢?
memset(a,0,10*10)这样对吗?怎么我这样写好像达不到预期效果?
还有我想问问大家,如果用
for(i=0;i<10;i++)
for(j=0;j<10;j++)
a[i][j]=0;
这样操作,对比用memset函数,时间会节省吗??
谢谢大家指教
...全文
92
3
打赏
收藏
关于memset函数
弱弱的问这个问题。上网搜了搜,发觉看不懂…… 举个例,如果我想将一个二维数组a[10][10]全部置零,我应该怎么用呢? memset(a,0,10*10)这样对吗?怎么我这样写好像达不到预期效果? 还有我想问问大家,如果用 for(i=0;i<10;i++) for(j=0;j<10;j++) a[i][j]=0; 这样操作,对比用memset函数,时间会节省吗?? 谢谢大家指教
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
gergerman
2011-02-02
打赏
举报
回复
[Quote=引用 1 楼 renxu350 的回复:]
memset() 第3个参数以字节为单位,
所以 a[10][10] 如果是 char a[10][10] 才能达到效果,
假如用 T 表示类型,并且 T a[10][10],
那么要达到效果可以这样写:
memset(a, 0, sizeof(T)*10*10);
另外这个循环与memset没有区别
因为数组的行与行之间的内存布局是顺序存储
[/Quote]
谢谢两位,学习了
bluejays
2011-02-02
打赏
举报
回复
memset的第三个参数是字节数。所以,如果a是char类型,用10*10就可以。如果a是int类型,那就应该是4*10*10,因为每个int都是4个字节。
比较保险的办法是memset(a,0,sizeof(a))
用循环自己清零,我觉得时间应该比memset慢一点,不过这点时间无所谓。这样循环肯定是正确的。
renxu350
2011-02-02
打赏
举报
回复
memset() 第3个参数以字节为单位,
所以 a[10][10] 如果是 char a[10][10] 才能达到效果,
假如用 T 表示类型,并且 T a[10][10],
那么要达到效果可以这样写:
memset(a, 0, sizeof(T)*10*10);
另外这个循环与memset没有区别
因为数组的行与行之间的内存布局是顺序存储
Linux下替换
memset
函数
Linux下替换
memset
为自己写的
函数
,但是用jmp绝对跳转时会遇到段错误的问题
C语言
memset
函数
使用方法详解
C语言
memset
函数
使用方法详解 一。
函数
原形 void *
memset
(void*s, int ch,size_t n) 二。
函数
作用 将以s内存地址为首的连续n个字节的内容置成ch,一般用来对大量结构体和数组进行清零 三。常见错误 1.搞反...
memset
()
函数
的另一种纯c语言实现方式
memset
()
函数
的另一种纯c语言实现方式
memset
函数
用法.rar
memset
C++中
memset
函数
用法详解
主要介绍了C++中
memset
函数
用法,结合实例形式详细分析了
memset
函数
的功能、使用方法与相关注意事项,需要的朋友可以参考下
C++ 语言
64,639
社区成员
250,571
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章