• 全部
  • 语言基础/算法/系统设计
  • 数据库相关
  • 图形处理/多媒体
  • 网络通信/分布式开发
  • VCL组件开发及应用
  • Windows SDK/API
  • 问答

如何处理的代码!

Nizvoo 2002-07-10 12:55:51
定义一个函数

function aa: TStringList;
var
stlResult: TStringList;
begin
stlResult := TstringList.Create;
Result := stlResult;
stlResult.Free; //如果无此句,则正确,因为释放后Result就不知道指向哪里了
end;

请指教,批评
...全文
28 点赞 收藏 23
写回复
23 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
Nizvoo 2002-07-24
UPUP~~~~~~~~~~~~~~~~
回复
Nizvoo 2002-07-10
再接
回复
Nizvoo 2002-07-10
各位,谢谢啦~~~~~~~~~~~~~~~~

回复
Kingron 2002-07-10
用Zswang的方法,或者这样:
function aa:TStringList;
begin
Result:=TStringList。Create;
Result。Add(‘abc’);
。。。。。
end;

var
T:TStringList;
。。。
T:=aa;
ShowMessage(T。Text);
T。Free;
这样也不会有内存泄漏吧?
回复
dearmyfriend 2002-07-10
zswang(伴水)说得对
回复
王集鹄 2002-07-10
function aa(mStrings: TStrings): Boolean;
begin
Result := False;
if not Assigned(mStrings) then Exit;
{ TODO : 处理mStrings }
Result := True;
end;

//demo
aa(Memo1.Lines);
回复
Nizvoo 2002-07-10
有没有补救措施
回复
王集鹄 2002-07-10
function aa: TStringList;
var
stlResult: TStringList;
begin
stlResult := TStringList.Create; //得到一个TStringList实例的地址
ShowMessage(Format('%p', [Pointer(stlResult)]));
Result := stlResult; //Result指向实例的地址
ShowMessage(Format('%p', [Pointer(Result)]));
stlResult.Free; //指向实例的地址虽然没有改变但实例已经释放
end;
回复
王集鹄 2002-07-10
function aa: TStringList;
var
stlResult: TStringList;
begin
stlResult := TStringList.Create; //得到一个TStringList实例的地址
ShowMessage(Format('%p', [Pointer(stlResult)]));
Result := stlResult; //Result指向实例的地址
ShowMessage(Format('%p', [Pointer(Result)]));
stlResult.Free; //指向实例的地址虽然没有改变但实例已经释放
end;
回复
manboo 2002-07-10
我认为可以这样处理的,如果有必要创建一个StringList的话不应该由函数创建,再外部创建,内部引用不好吗?何苦呢!
回复
王集鹄 2002-07-10
var
Form1: TForm1;

//....
var
Form2: TForm1;
begin
Form2 := Form1;
Form2.Caption := 'Form2是一个对象的指针';
end;
回复
王集鹄 2002-07-10
var
Form1: TForm1;

//....
var
Form2: TForm1;
begin
Form2 := Form1;
Form2.Caption := 'Form2是一个对象的指针';
end;
回复
manboo 2002-07-10
我认为可以这样处理的,如果有必要创建一个StringList的话不应该由函数创建,再外部创建,内部引用不好吗?何苦呢!
回复
王集鹄 2002-07-10
var
Form1: TForm1;

//....
var
Form2: TForm1;
begin
Form2 := Form1;
Form2.Caption := 'Form2是一个对象的指针';
end;
回复
Nizvoo 2002-07-10
莫非一定得等到其拥有者Free时一齐Free吗?
回复
zhxfzhxf1 2002-07-10
function aa: TStringList;
var
stlResult: TStringList;
begin
stlResult := TstringList.Create;
Result := stlResult;
stlResult.Free;
end;
进行资源申请与释放的工作应该在同一层次进行。这样的语句严重违反了这一规则。
可以用 zswang(伴水) 的方法。
把结果改为参数进行传递。
回复
王集鹄 2002-07-10
一切都是数据 :)
一切变量都是指针 :)

//希望这个连接对你有所帮助//从新认识编程
http://www.csdn.net/Expert/TopicView1.asp?id=806954
回复
backlove 2002-07-10
关注,我也挺困惑的
回复
Nizvoo 2002-07-10
再接接,加分
回复
ht99 2002-07-10
本来就不应该Free的。
回复
相关推荐
yii2实战快餐系统
基于yii2开发的一套快餐系统,支持微信支付和支付宝支付。源代码托管到github上,搜索 abei2017/yii2.food 可以进入。 通过实战项目让yii2初学者更快的融入到实际项目开发中。
过程控制系统课程设计(锅炉汽包温度控制系统论文)
本次设计采用串级控制系统对锅炉汽包温度进行控制。 过程控制系统由过程检测、变送和控制仪表、执行装置等组成,通过各种类型的仪表完成对过程变量的检测、变送和控制,并经执行装置作用于生产过程。 串级控制系统是两只调节器串联起来工作,其中一个调节器的输出作为另一个调节器的给定值的系统。此系统改善了过程的动态特性,提高了系统控制质量,能迅速克服进入副回路的二次扰动,提高了系统的工作频率,对负荷变化的适应性较强。 串级控制系统工程应用场合如下: (1)应用于容量滞后较大的过程。 (2)应用于纯时延较大的过程。 (3)应用于扰动变化激烈而且幅度大的过程。 (4)应用于参数互相关联的过程。 (5)应用于非线性过程。 正因为串级控制系统具有上述特点,所以本次设计采用串级控制系统对锅炉汽包温度进行控制。 采用单片机作为主控制器,锅炉汽包温度为主被控对象,上水的流量为副被控对象,电磁阀为执行器,利用AD590传感器检测汽包温度,利用流量传感器检测上水流量。锅炉汽包温度串级控制系统框图如图1.1所示,系统原理图如图1.2所示。
MFC上位机与STM32下位机通讯精讲
本课程主要介绍C++类库MFC上位机与STM32单片机的RS232、RS422、RS485、USB、LWIP以太网、CAN等接口进行稳定通信。课程主要从MFC和STM32基础开始,以编写上位机以及下位机为主,非常注重实践。 本课程主要目标是让大家学会MFC上位机的编程、STM32下位机编程。单单的会上位机或者下位机有时候体会不到通讯的乐趣,如果你单单会下位机,你学了本课程,你可以把你的数据以任何方式在windows上呈现出来,如果你只会上位机,你学了本课程你可以通过windows的串口、以太网、USB控制任何硬件设备。本课程的目标就是补偿大家的短处,让大家成为综合性人才,同时让大家体会到通讯中的更多乐趣。
FFmpegAndroidDemo.zip
ffmpeg-3.3.1移植到android平台
光模块基础知识
光模块内部发射与接收的专业讲解,利于新手快速开发。
android 登陆界面例子
android 登陆界面例子 可以直接运行的
信息安全等级保护管理办法(公通字[2007]43号)
信息安全等级保护管理办法(公通字[2007]43号)
C语言大型软件设计的面向对象
C语言代码一旦达到一定规模,就特别强调良好的架构设计,以保证代码的可读性好、代码简洁以及可复用。此时,软件设计师势必要用C语言来做面向对象的设计。不能克服面向对象这一关,也是很多人无法读懂Linux内核、驱动等架构比较庞大的软件的主要技术壁垒之一,因为这些软件里面充满了对象式的设计。 本课程以案例来详细讲解,用C语言如何设计面向对象的程序。 本课程以案例来详细讲解,用C语言教大家如何设计面向对象的程序。
PPT模板下载
PPT模板下载我只是想要点积分啊 
vue-devtools chrome 插件
chrome(谷歌浏览器)vue代码调试插件, 已打包。解压后,通过chrome扩展程序加载即可使用。 使用方法: 1、chrome浏览器输入地址“chrome://extensions/”进入扩展程序页面 2、勾选开发者模式 3、点击“加载已解压的扩展程序...”按钮,选择解压后的chrome文件夹,即可添加成功。 4、添加完vue-devtools扩展程序之后,我们在调试vue应用的时候,ch rome开发者工具中会看一个vue的一栏,点击之后就可以看见当前页面vue对象的一些信息
《UML面向对象需求分析与建模教程》 邹盛荣 主编 电子版 2016.01 .doc
PPT已在CSDN均可免费下载 《UML面向对象需求分析与建模教程》 邹盛荣 主编 电子版 2016.01 .doc 当当网上可购买纸质书: http://product.dangdang.com/23766413.html
STM32F407 / F103 PCF8575模块 控制16个I/O口 IIC通信
本例程为STM32F407控制PCF8575模块的16个I/O口输出,本例程基于正点原子STM32F407 IIC例程修改,本例程中使用PCF8575控制16个继电器。
比较两张图片差异
比较两张图片差异,代码收集于网上,码收集于网上
c#图片文字-字母-数字自动识别-深入代码-非常好
c#图片文字-字母-数字自动识别-深入代码-非常好
rtl8188eu_USB_linux.tar.gz
TP-LINK TL-WN725N V2 Linux 驱动安装
Control-flow Enforcement Technology Preview 2.0 spec
Intel CFI技术手册。 Intel CFI从CPU层次检测和防止ROP/JOP攻击,主要包含shadow stack和endbranch两项技术。 比软件层面的防御方法,如微软的CFG,更有效。目前Intel最新编译器已经支持此技术
SpringCloud微架构
SpringCloud是现在热门的RPC开发框架,也是以后的RPC开发趋势。在本套课程之中将为读者详细的讲解分布式技术的发展历史、以及各种分布式开发优缺点,同时详细的分析了整个SpringCloud中所涉及到的技术点以及相关作用。 本课程将基于Rest服务、SpringSecurity访问进行讲解,详细的讲解了Eureka注册发现服务、Eureka-HA机制、服务部署处理、Ribbon负载均衡、Feign接口映射、Hystrix熔断处理、Zuul代理访问等SpringCloud核心内容。随后在基础内容的讲解基础上又为读者讲解了SpringCloudConfig、GITHUB服务配置、消息服务、服务监控等辅助内容。
后备电池及储能电池巡检白皮书.pdf
后备电池及储能电池巡检白皮书,施耐德电气主编的,数据中心电池巡检白皮书。
CListControl设置颜色
CListControl类派生,设置单元格颜色,丰富功能
Linux系统管理员/网络管理员(PDF版)
两本非常好的Linux系统学习的书 系统管理主要介绍Linux系统的结构、管理、命令等 网络管理主要从网络协议角度出发阐述Linux的网络功能
STM32F103中文数据手册
这个里面包含了STM32F103的各种型号的数据手册,方面理解
计算机网络技术教程
本课程适用于计算机和通信相关专业的学生、准备考华为和思科认证但是基础不扎实的、想学黑客和网络安全的、考研的同学、没有系统学习过网络的编程人员和相关从业人员,课程从理论讲起,以理论为主,在后边章节补充了考研、考试的知识,也补充了生活中的网络应用。 让大家理解网络的概念,让计算机和通信相关专业的学生、准备考华为和思科认证但是基础不扎实的、想学黑客和网络安全的、考研的同学、没有系统学习过网络的编程人员和相关从业人员,在为以后的学习打下良好的基础,同时课程后边补充了考研、考试的知识,也补充了生活中的网络应用。
WPF中用于嵌入其他进程窗口的自定义控件(AppContainer)
WPF中用于嵌入其他进程窗口的自定义控件(AppContainer) 具体见博文:http://blog.csdn.net/zzzwwwppp11199988899/article/details/78131292
MSP430_RTC模块学习总结
这是自己在学习MSP430时,对RTC模块的总结,希望可以帮助刚入门者
APP内置IM 系统——从入门到千万级在线
IM (即时通讯)系统是一种大型实时系统,其对技术方面的要求非常高。在APP社交化的今天,很多APP都希望为自己的应用增加IM系统,但却不得其法。本课程抽丝剥茧,搭建一套简IM 系统,先让开发者了解如何实现这类系统,然后会不断的对系统进行扩展,并详述要支撑千万级别的用户,系统架构要经过哪些方面的演变,在每个阶段需要具体考量哪些因素;其中涉及到大型网络开发、协议的制定解析、数据库的优化、负载均衡、监控、测试等方面的知识。相信通过此课程,开发者对IM 系统将有一个全面的认识。 a:0:{}
CIET-2019-0504 数据中心运维管理人才标准.pdf
数据中心运维管理,人才标准,欢迎查看共同学习。
学会在Linux上编译调试C++项目
本课程主要针对没有或者很少写过linux上C++程序的同学, 本课程会教你如何从0基础开始,安装配置ubuntu虚拟机、使用GCC编译普通程序、动态库、静态库,编写复杂项目配置文件makefile,使用GDB工具调试C++程序。 通过本课程学习,可以熟练掌握如何高效的编译调试Linux上的c++程序,掌握如何安装配置ubuntu系统,掌握gcc编译动态、静态库,掌握makefile的编写,能够用Makfile编写出高效的项目配置文件。
webrtc demo使用方法
谷歌webrtc demo的使用教程,webrtc源代码自行从官网下载,该教程只给出了源代码详细的使用方法,包括如何编译
朴素贝叶斯算法做文本分类-代码
https://blog.csdn.net/zzZ_CMing/article/details/89478436 朴素贝叶斯算法做文本分类,用的是谭松波酒店语料。
C语言--视频精讲
C语言作为被长期使用的编程语言,可以被运用到各种操作系统,游戏,开发中。本课程作为互联网上首家使用C99录制的C语言教程,展现了全面、专业。标准的C语言教程。可以帮助学员从基础开始一点点的深刻理解C语言。 a:0:{}
发帖
Delphi
创建于2007-08-02

4875

社区成员

Delphi 开发及应用
申请成为版主
帖子事件
创建了帖子
2002-07-10 12:55
社区公告
暂无公告