函数传值时的内存复制
来源:互联网 发布:成人频道直播软件 编辑:程序博客网 时间:2024/05/17 00:50
今天在进行指针操作时,在函数内已经将值保存在成员变量中,但是发现在使用时,传递过来的值却不正确,在对代码进行跟踪时,发现了这个很”小白“的问题,呵呵,记录下来,下次要多注意了!!!!
根源:用指针变量作为参数来传递值,在将此值赋值给另一个变量进行保存时,不能简单的利用“=”进行传递,而应该使用memcpy进行内存的复制
例:
类成员变量:m_map
StructData *Temp = Null;
设置函数:
void SetFunc(int n, StructData * data)
{
Temp = newStructData;
memcpy(Temp,data,sizeof(StructData));
//Temp = data; (有问题)
}
Temp = data; 如果利用此方法赋值,只是单纯的将data的首地址传给了Temp,当调用的SetFun函数结束时,data的内存可能被回收,那么该内存对应的值也将变化,Temp中的值将出问题。
但如果只是想在函数内使用data的值,则不需要这样做,直接使用即可。
- 函数传值时的内存复制
- Delphi 的内存操作函数:复制内存
- memcpy内存复制函数的使用
- 如何写自己的内存复制函数?
- 实现内存复制函数
- Delphi 的内存操作函数(5): 复制内存
- 面试:实现内存复制函数
- 面试:实现内存复制函数
- 面试:实现内存复制函数
- 自定义内存复制函数memcpy()
- 由内存复制函数看assert宏的使用
- c/c++知识点---内存复制函数memcpy的使用
- 自行编写内存复制函数MyMemcpy()函数
- memmove()函数:复制内存内容(优点:可以处理重叠的内存块)
- 自定义内存复制函数memcpy()
- 面试总结~~附:内存复制函数mymemcpy
- delphi 的内存复制处理
- 动态分配内存的对象必须提供自定义的复制构造函数
- Hadoop ObjectWritable类的实现浅析
- hdu 1753 大明A+B
- ocp学习随记(四)
- 新浪微博开放平台研究-实现微博自动评论(下)
- mysql导入数据库报错Error Code: 2006
- 函数传值时的内存复制
- hdu3062 Party
- windows下整合 tomcat 和 nginx
- 属性copy性能比较
- copy构造函数 和 赋值函数
- 我的青春我做主
- Evaluate Reverse Polish Notation | leetcode
- eclipse常用快捷键
- 3143 二叉树的序遍历(维基oi)