首页 > 其他分享 >成员函数里memset(this,0,sizeof(*this))会发生什么

成员函数里memset(this,0,sizeof(*this))会发生什么

时间:2023-02-22 11:36:23浏览次数:40  
标签:函数 int memset 该值 内存 sizeof

成员函数里memset(this,0,sizeof(*this))会发生什么

void *memset(void *str, int c, size_t n)
- 参数
    - str -- 指向要填充的内存块。
    - c -- 要被设置的值。该值以 int 形式传递,但是函数在填充内存块时是使用该值的无符号字符形式。
    - n -- 要被设置为该值的字符数。
  • 类里面定义了很多int,char,struct等c语言里的那些类型的变量,我习惯在构造函数中将它们初始化为0,但是一句句的写太麻烦,所以直接就memset(this, 0, sizeof *this);将整个对象的内存全部置为0。
  • 类含有虚函数表:这么做会破坏虚函数表,后续对虚函数的调用都将出现异常;
  • 类中含有C++类型的对象,把这些对象清零会导致非法数据。
  • 当存在成员变量申请了堆上的内存,那么使用memset来清0,就会造成内存泄露。

标签:函数,int,memset,该值,内存,sizeof
From: https://www.cnblogs.com/xiaoqing-ing/p/17143753.html

相关文章

  • 函数重载
    当程序中有函数重载时,函数的匹配原则和顺序是什么?名字查找确定候选函数寻找最佳匹配你知道重载运算符吗?只能重载已有的运算符,而无权发明新的运算符两种重载方式:成......
  • Vue - eslint默认验证,函数名称和括号相连报错
    如果函数名和括号相连,eslint验证会报错,这个可以通过eslint的设置解决:一,打开eslintrc.js,在rules配置中加入:'space-before-function-paren':0完整配置:rules:{/......
  • Python中函数参数是如何传递的?
    Python函数相比对于多数程序员来说不陌生吧,那么Python函数中的参数是如何传递的呢?首先我将会以代码图文的形式给大家展现以下,看看是不是和您所认知的Python函数一样的结果?......
  • 自定义函数
     v-big点击按钮X加1乘以10<!--自定义函数--><divclass="weather"><h2>当前n是{{x}}</h2><h2>放大十......
  • LabVIEW|小技巧:自定义属于自己的函数面板
      再实际的LabVIEW开发中,常常遇到这么一种情况,在一些场景,使用到某个子vi的频率非常之高,但在文件夹中找到它又颇麻烦。这个时候就可以在常用的函数面板中加入自己常用......
  • JQuery事件绑定&入口函数&样式控制与JQuery_选择器_基本选择器
    JQuery事件绑定&入口函数&样式控制4.选择器:筛选具有相似特征的元素(标签)1.基本操作学习: 1.事件绑定 2.入口函数  ......
  • 【Azure 应用服务】Azure App Service(Windows)环境中如何让.NET应用调用SAP NetWeave
    问题描述在AzureAppServiceforWindows的环境中,部署.NET应用,其中使用了 SAPNetWeaverRFC函数(需要加载sapnwrfc.dll)。详细的错误为:“System.DllNotFoundExcepti......
  • strtok函数
    函数原型char*strtok(char*str,constchar*delim)头文件string.h函数作用将str字符串中与delim相同的子字符串替换成'\0',然后返回str的首元素地......
  • Tensorflow中常用的卷积函数
    卷积函数(1)计算N维卷积的和tf.nn.convolution(input,filter,padding,strides=None,dilation_rate=None,name=None,data_format=None)(2)对一个四维的输入数据input和卷积核......
  • Tensorflow中常用的池化函数
    池化函数在神经网络中,池化函数一般跟在卷积函数的下一层,池化操作是利用一个矩阵窗口在张量上进行扫描,将每个矩阵窗口中的值通过最大值或者平均值来减少元素的个数,每个池化操......