以前在开发电子秤接口动态库时,曾尝试在用于获取重量的函数外面定义一个字符串指针,然后作为参数传入函数内部,然后在函数内部new,用来输出函数执行过程中发生的错误。但是总是出错,没有找到原因,后来无意中看到了下面的一段说明,忘记摘录出处了,感谢作者。
如下:
不能返回函数内部 new分配的内存的引用(这个要注意啦,很多人没意识到,哈哈。。。 )。
这条可以参照Effective C++[1]的 Item 31。虽然不存在局部变量的被动销毁问题,可对于这种情况(返回函数内部 new分配内存的引用),又面临其它尴尬局面。例如,被函数返回的引用只是作为一个临时变量出现,而没有被赋予一个实际的变量,那么这个引用所指向的空间(由 new分配)就无法释放,造成memory leak 。
本文用菊子曰发布
时间: 2024-11-04 21:37:35