社区
语言基础/算法/系统设计
帖子详情
关于指针的释放
SmallMaker
2006-08-24 12:09:13
我想new一个指针,然后将该指针的地址做为变量传递到另一个过程中,
我能否根据得到的地址将new出来的指针释放掉
...全文
228
10
打赏
收藏
关于指针的释放
我想new一个指针,然后将该指针的地址做为变量传递到另一个过程中, 我能否根据得到的地址将new出来的指针释放掉
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
SmallMaker
2006-08-24
打赏
举报
回复
type
pMyrec=^Myrec;
Myrec=record
x:integer;
y:string;
end;
pro1 xxxx();
var
p:pMyrec;
begin
new(p)
...
pro2(LongInt(@p));
...
end;
procedure pro2 (xx:longint)
begin
....
end;
请楼上的在pro2中给我释放一下p
sunnysmile
2006-08-24
打赏
举报
回复
当然可以了
OO_is_just_P
2006-08-24
打赏
举报
回复
可以,Dispose就可以了。
OO_is_just_P
2006-08-24
打赏
举报
回复
那就强制类型转换就行了.
SmallMaker
2006-08-24
打赏
举报
回复
我想要的是只传递一个整型的地址,就将new(p),出来的p给释放掉!
OO_is_just_P
2006-08-24
打赏
举报
回复
var
Form1: TForm1;
point :Pointer;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var p:pMyrec;
begin
New(P);
point :=p;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
DisposeP(point);
end;
procedure TForm1.DisposeP(p: pMyrec);
begin
if p<>nil then
Dispose(P);
P :=nil;
end;
你自己注意检查。
OO_is_just_P
2006-08-24
打赏
举报
回复
procedure TForm1.Button1Click(Sender: TObject);
var p:pMyrec;
begin
New(P);
end;
procedure TForm1.DisposeP(p: pMyrec);
begin
if p<>nil then
Dispose(P);
end;
SmallMaker
2006-08-24
打赏
举报
回复
我的本意是通过消息传送一个指针,接收到消息后,进行处理,然后将该指针释放
现在我是通过消息传送了指针的地址,接收到之后我能正确地读取指针的内容,但是我无法释放该指针
muroachanf
2006-08-24
打赏
举报
回复
procedure pro2 (xx:longint)
begin
Dispose(Pointer(Pointer(xx)^));
end;
你直接传指针本身就好了,最好不要这么传,会有问题的,另外,不要跨模块,比如在dll1中new,在dll2中释放,那就会有问题的.
yyfhz
2006-08-24
打赏
举报
回复
可以告诉我为什么要在pro2中释放p吗?你释放了但是外面程序还不知道,估计跑起来会爆出一堆的地址错误,一般是在哪里申请就在哪里释放的。
一定要做的话,可以在proc2中将xx强制类型转换成pMyrec再释放。
c++ 关于
指针
释放
的问题
意思是
释放
了对a和b所指向内存的所有权(即内存被操作系统回收了),但此时a和b没置nullptr前仍指向这块内存地址,这块内存地址可能不存在了,也可能被其它程序利用了,因此int r = *a就具有不确定性,所谓未定义...
C++---关于
指针
释放
的概念
下面是自己总结的一些关于new创建类对象特点: new创建类对象需要
指针
接收,一处初始化,多处使用 new创建类对象使用完需delete销毁 new创建对象直接使用堆空间,而局部不用new定义类对象则使用栈空间 new对象...
C++
指针
释放
问题
今天看到了一个问题,其实在项目中也经常遇到
指针
释放
的问题,先看看一个简单的
指针
释放
的问题: ************************************** 问题如下: (1)一般在c++类中有成员
指针
的话,会在类的析构...
正确
释放
指针
的方式
释放
指针
所指向的内存中存在一些坑,这里总结一下 ...
指针
释放
并值为空,如果只是简单的
指针
变量,几乎没有时间消耗;但是如果在类的析构函数中delete
指针
成员变量,可能执行的时间比较长,如果这个时间段内有.
结构体
指针
释放
问题
第一种情况:name
指针
也申请了堆内存,此时需要
释放
name指向的内存后再
释放
结构体节点
指针
Student *p = (Student*)malloc(sizeof(Student)); // 申请内存:结构体一个节点 if (p == nullptr) { return 0; } p->...
语言基础/算法/系统设计
16,748
社区成员
33,247
社区内容
发帖
与我相关
我的任务
语言基础/算法/系统设计
Delphi 语言基础/算法/系统设计
复制链接
扫一扫
分享
社区描述
Delphi 语言基础/算法/系统设计
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章