首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

小弟我想让一个指针指向某个函数开辟的新空间为啥不成功

2012-02-16 
我想让一个指针指向某个函数开辟的新空间为啥不成功?比如这样的代码:#includeiostreamusingnamespacestd

我想让一个指针指向某个函数开辟的新空间为啥不成功?
比如这样的代码:
#include   <iostream>

using   namespace   std;

void   aa(int*   m)
{
        m   =   (int*)   malloc(sizeof(int));
        *m   =   88;
};

int   main()
{
        int   i   =   99;
        int   *tt   =   &i;
        aa(tt);

        cout   < <   tt   < <   ", "   < <   *tt   < <   endl;
        return   0;
}

我想让指针tt指向函数aa()里面新申请的一个空间,这个代码似乎不成功(链表或树里面的insert()代码好像就是类似这样写的)。从最后输出的来看,tt指向的还是原来的那个i的地址。正确的应该怎么做才对?



[解决办法]
這樣的形參應該只是修改了變量本身的副本。

而自身沒有變化。

用指針引用吧
[解决办法]
也可以使用指向指针的指针

void aa(int** m)
{
*m = (int*) malloc(sizeof(int));
**m = 88;
};

用aa(&tt);调用
[解决办法]
int * GetMem(len)
{
int *mem = new int[len];
return mem;
}
[解决办法]
呵呵
前段时间偶也犯这个错了

顶一下

应该是将指针的引用传到函数里去
要么就是返回这个内存空间的指针
[解决办法]
用指针的指针就可以了。
以前我也犯过这样的错误。5555.。
[解决办法]
很常见的错误
特别在链表的创建、插入时,应该小心

热点排行