在什么情况下,您希望在c++中使用这种性质的代码?
void foo(type *&in) {...}
void fii() {
type *choochoo;
...
foo(choochoo);
}
发布于 2012-04-20 12:14:42
如果需要修改指针而不是指针所指向的对象,您可能希望通过引用传递指针。
这类似于为什么使用双指针;使用对指针的引用比使用指针稍微安全一些。
发布于 2013-11-25 17:51:08
50%的C++程序员喜欢在删除后将指针设置为null:
template<typename T>
void moronic_delete(T*& p)
{
delete p;
p = nullptr;
}
如果没有引用,您将只更改指针的本地副本,而不会影响调用方。
发布于 2012-04-21 16:18:09
我不得不使用这样的代码来提供函数,为传入的指针分配内存并返回它的大小,因为我的公司使用STL将“对象”传递给我
int iSizeOfArray(int* &piArray) {
piArray = new int[iNumberOfElements];
...
return iNumberOfElements;
}
这不是很好,但指针必须通过引用传递(或使用双指针)。否则,如果通过值传递指针,则会将内存分配给该指针的本地副本,这会导致内存泄漏。
https://stackoverflow.com/questions/10240161
复制相似问题