我想让一个指针指向某个函数开辟的新空间为啥不成功?
比如这样的代码:
#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.。
[解决办法]
很常见的错误
特别在链表的创建、插入时,应该小心