社区
C++ 语言
帖子详情
void freePtr(T* & p), p是指针引用吧
kolapig
2009-11-22 03:35:44
指针引用一般什么时候用到啊
...全文
109
3
打赏
收藏
void freePtr(T* & p), p是指针引用吧
指针引用一般什么时候用到啊
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
xg198804
2009-11-22
打赏
举报
回复
[Quote=引用 2 楼 xg198804 的回复:]
是指针引用,用指针引用的时候一般就可以用指向指针的指针,不管是指针引用还是指向指针的指针,他们都还是在传递地址,只不过这时引用的是一个指针变量,指针指向的也是一个指针变量.而当你想把在函数体内对参数的修改反应到外面时,就应该用引用或者指针.可以举个例子:
//这段代码用于动态获得内存
void GetMemory(char*& p,int num)
{
p=(char*)malloc(sizeof(char)*num);
}
而此时你一般是要把这个申请内存得到的指针在外面用的,所以需要用指针引用或指向指针的指针,
而像上面这样的问题一般又都可以采用函数返回指针的办法解决.如上面的代码可以用下面的代码得到同样的效果:
char* GetMemory(char*& p,int num)
{
p=(char*)malloc(sizeof(char)*num);
return p;
}
而在return 一个指针的时候又一定要注意不要返回一个指向"栈内存"的指针,也就是函数内局部指针变量,因为栈内存变量在函数结束就自动消失了,此时指针就指向了一个非法内存上,成了"野指针".
相信这样讲比较清晰了吧
[/Quote] 不好意思:上面的第二段代码中函数的第一个参数写错了,应该是char*
xg198804
2009-11-22
打赏
举报
回复
是指针引用,用指针引用的时候一般就可以用指向指针的指针,不管是指针引用还是指向指针的指针,他们都还是在传递地址,只不过这时引用的是一个指针变量,指针指向的也是一个指针变量.而当你想把在函数体内对参数的修改反应到外面时,就应该用引用或者指针.可以举个例子:
//这段代码用于动态获得内存
void GetMemory(char*& p,int num)
{
p=(char*)malloc(sizeof(char)*num);
}
而此时你一般是要把这个申请内存得到的指针在外面用的,所以需要用指针引用或指向指针的指针,
而像上面这样的问题一般又都可以采用函数返回指针的办法解决.如上面的代码可以用下面的代码得到同样的效果:
char* GetMemory(char*& p,int num)
{
p=(char*)malloc(sizeof(char)*num);
return p;
}
而在return 一个指针的时候又一定要注意不要返回一个指向"栈内存"的指针,也就是函数内局部指针变量,因为栈内存变量在函数结束就自动消失了,此时指针就指向了一个非法内存上,成了"野指针".
相信这样讲比较清晰了吧
mstlq
2009-11-22
打赏
举报
回复
大概就是想用双重指针的时候……
《c语言深度解析》第3、4章 存储类、生命周期、作用域、链接域,
指针
与函数
课程内容:第3章:存储类与auto、static、register关键字指令、常量、变量的生命周期变量与函数的作用域链接域与extern、static关键字声明的意义第4章:存储空间、符号、地址一级
指针
与多级
指针
野
指针
与段错误
void
*
指针
类型const与
指针
函数
指针
函数调用—栈的使用过程回调函数和函数
指针
数组
指针
与函数传参递归函数内联函数
关于(
void
**)&的理解
转来的,照例,祭出原地址~ ...(
void
**)&必须是本质上就是
指针
变量的地址才可以做这样的转换,并不是说把一个一级
指针
也可以转换,
void
**的本质是标识一个二级
指针
。 &data就是(默认数据类型 **)&data,(v
说透一级
指针
和二级指以及(
void
**)&在双链表中的应用
void
(*signal (int signo,
void
(*func) (int) )) (int)这一大堆看起来很难,其实仔细分析下不算很难搞。 首先要明白一件事:这里都是从最基本的语法展开的。 那么这里最基本的语法就是函数的声明:返回值 函数名...
释放
void
*
指针
释放
指针
在C/C++编程中非常重要,一般推荐释放
指针
后立即将
指针
设置为null,防止出现低级的野
指针
问题(只能避免低级别的野
指针
)同时方便调试。 一、C语言时代 在C语言编程中,我们由于没有C++模板,函数重载功能...
C++
Void
指针
教程
本文我们一起看看
Void
指针
,了解它的... //
ptr
是
Void
指针
void
指针
可以指向任何类型对象,请看示例: int nValue; float fValue; struct Something { int n; float f; }; Something sValue;
void
*
ptr
; pt.
C++ 语言
64,672
社区成员
250,490
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章