zoukankan      html  css  js  c++  java
  • 返回值为record类型的函 初始化 内存泄漏 复制

    1、函数需要初始化,否则下次调用函数时,Result还是上次的值,可能会引起误判。但是不会有内存泄漏,即使包含string类型的成员。

    2、如果record包含的都是值类型的成员,比如integer,可以用ZeroMemory或者FillChar,函数多次调用时也不会内存泄漏。

    如果,包含string类型的成员,不能用ZeroMemory或者FillChar,否则函数多次调用时会内存泄漏。

    3、

    procedure ResetRecord(out aRecord; Size: Integer);
    begin
       FillChar(aRecord, Size, 0);
    end;

    对包含string类型成员的record,也能初始化,而且不会内存泄漏。

    Delphi帮助上面说的很清楚:

    同类型的记录之间是可以用赋值来做的,赋值是复制,不是共用一个地址。

    http://www.360doc.com/content/11/0801/09/68419_137087408.shtml

    http://bbs.2ccc.com/topic.asp?topicid=406403

    http://blog.sina.com.cn/s/blog_4820a7ab01000155.html

  • 相关阅读:
    Hash
    字符串hash
    NOIp 2014解方程
    NOIp2014 寻找道路
    NOIp2013火柴排队
    用scanf("%d",)读入long long类型
    lis问题
    西江月·证明
    计算系数
    积木大赛&PLA-Postering
  • 原文地址:https://www.cnblogs.com/CodeGear/p/4435538.html
Copyright © 2011-2022 走看看