首页 > 其他 > 详细

memset 导致的一个段错误

时间:2019-09-11 20:10:59      阅读:441      评论:0      收藏:0      [点我收藏+]

原型:  

void *memset(void *s, int c, size_t n);

 

解释:

memset :是 逐字节 拷贝,即n是指整个变量所占字节,在用于数组时一定要注意n不一定是 数组元素.

memset :用来给某一块内存空间进行赋值的.

 

段错误之处:

对于所赋值的变量,如果不定义,如何来空间,随机空间??? 所以memset所用对象必须先定义.

 

eg: 错误用法

B *b ;
memset(b,0,sizeof(B)); 
如果未定义,尽管memset成功执行,但是会将后面的其它变量给置NULL了,导致:段错误

正确用法:

B *b = new B;
memset(b,0,sizeof(B));在b所指的空间地址处进行赋值

  

 

memset 导致的一个段错误

原文:https://www.cnblogs.com/uagvdu/p/11507895.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!