出了函数,pBuffer仍然是NULL,好像是生存期和作用域的问题吧?!
解决方案 »
- 非常基础的C语言变量问题,可是我发觉一直没搞明白
- VC++中自绘的CListBox控件如何删除一个Item
- 一个关于界面的问题,大家给指点一下
- 请问如何区分上下两条近似直线的点?
- OGRE 跟 DirectX 的优劣比较
- 求教使用pro*c/c++封装ORACLE操作的DLL中出现的问题
- CTime对象转换为字符串
- 请推荐一本VC(MFC)入门书,实例的。
- 我的程序第一次运行时很好,马上运行第二次时出现:Debug assertion Failed! 请问怎么回事?
- 如何修改组件或控件的 消息处理函数 Minproc()
- 在不安装Acrobat的前提下如何读取PDF文件?
- 如何在VC++中将long类型数据转换为string类型的数据(急)
Transfer(BYTE*& pBuffer)
{...}
{
*pBuffer=new ...
}
BYTE* pBuf;
Transfer(&pBuf);
传址就是把参数的地址传进去,任何在函数里针对这个地址的改变就会改变参数原来的值!
{
pBuffer=new ...
}
BYTE* pBuf;
Transfer(pBuf);
实际上,调用函数时是酱紫:Transfer(pBuffer),这里指针变量pBuffer的“值”是按传值传过去的,相当于 Transfer(NULL),在Transfer函数调用完后,而pBuffer的“值”没有任何变化。
如果将这个函数参数的指针形参改变成引用Transfer(BYTE*& pBuffer),就不同了