函数中分配内存的问题
来源:互联网 发布:十大网络语 编辑:程序博客网 时间:2024/05/17 09:28
只是为了能够让自己讲清一些事!
大家都知道,如果想要在在C++的函数中分配内存,那么就只得使用指针的引用传递,或是二级指针
如:
而通常我们在开始的学习中,都会写成
void MyNew(int* p)
{
p = new int;
}
为什么这样分配不会成功呢?
原理很简单,就是形参传递时的拷贝。
当p传入进MyNew的时候,函数内部会对其进行拷贝。而函数内部真正操作和分配到了内存的,就是那个考贝后的变量。
偽代码如下:
void MyNew(int* p)
{
int* temp = p;
temp = new int;
}
不言而寓,最终p也没有得到想要分配给他的址。
而上面两种方式,采用了引用的,就不会产生拷贝,自然就不用解释了。
而采用二级指针的,我们同样用偽码可以看到。
void MyNew(int** p)
{
int** temp = p;
*temp = new int;
}
虽然同样是进行了拷贝,但是由于 temp和p同样指向一个地方,则*temp正好就是我们想要分配给它地址的那个值,所以最后得到了想要的结果!!!
- 函数中分配内存的问题
- 函数中分配内存的问题-zz
- 函数中分配内存的问题
- 函数中分配内存的问题
- DLL函数中内存分配及释放的问题
- 深入理解函数中分配内存的问题
- 关于函数中栈内存的分配问题追踪
- 深入讲解函数中分配内存问题
- 深入讲解函数中分配内存问题
- C++成员函数的内存分配问题
- C++成员函数的内存分配问题
- C++成员函数的内存分配问题
- C++成员函数的内存分配问题
- C语言中分配内存的函数
- C++中内存分配的问题
- java中内存分配的问题
- C++中内存的分配问题
- 关于VC++中内存分配的问题
- 一个游戏引擎所应具有的元素
- 啥都想!!!
- 毕业设计,MD2模型动画展示
- C++对象的内存布局
- C语言 指针数组
- 函数中分配内存的问题
- 某内存池中的指针用法
- 冒泡排序与选择排序的不同、快速排序与选择排序的结合
- 深入理解函数中分配内存的问题
- security cookie
- DirectX支配游戏!历代GPU架构全解析
- 关于Windows
- Windows中的错误处理
- 带文件名和行号的信息输出宏