直接利用指针做为参数,得到申请的内存是不可以的,
因为此时的指针被处理成值传的指针,像基本数据类型一样,是值传,
想要利用指针申请内存,需要用指针的指针或者指针的引用,就像基本数据类型的引用一样
这里推荐使用指针的引用
因为指针的指针使用比较复杂,如果函数内除了申请内存,还有其他功能,引用就显得非常方便,
而指向指针的指针则很难使用
例子如下:
template <class Type> bool AVLTree<Type>::Insert(AVLNode<Type> *&tree,Type x,int &taller)
{
bool success = false;
if(tree == NULL)
{
tree = new AVLNode<Type>(x);
success = tree != NULL ? 1 : 0;
if(success)taller = 1;
}
else if(x < tree->data)
{
... ...
这是一个AVL Tree插入数据的例子,
如果根为空,申请内存,如果根不空,其他操作... ...