Delphi - 结构的字符串没有被释放 [FastMM 管理器]

2024-02-10

如果我声明

PSomeStruct = ^TSomeStruct;
TSomeStruct = record 
  s1 : string;
end;

我运行以下代码:

var
  p: PSomeStruct;
begin
  new(p);
  p^.s1:= 'something bla bla bla';
  dispose(p);

FastMM 4 内存管理器报告存在内存泄漏(类型:字符串,数据转储:“something bla bla bla”)。但是,如果我在调用之前将 s1 字符串设置为空dispose没关系。

我发现的第二种方法是从记录类型更改为类,然后而不是new我正在创建实例,而不是dispose我正在打电话instance.Free()。它无需手动清洁琴弦即可工作。

有没有办法让 Delphi 在我调用时自动清理我的字符串dispose?


FastMM 是您的 .dpr 中使用的第一个单位吗?否则,它可能会过早完成,报告错误的内存泄漏。

这个简化的代码示例是否也会产生与使用 JvSimpleXML 时相同的内存泄漏?如果不是,则可能发生的事情比您怀疑的还要多。

我认为:当FastMM报告内存泄漏时,就存在内存泄漏。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Delphi - 结构的字符串没有被释放 [FastMM 管理器] 的相关文章

  • 如何在 C++ 中对静态缓冲区执行字符串格式化?

    我正在处理一段对性能要求非常高的代码 我需要执行一些格式化的字符串操作 但我试图避免内存分配 甚至是内部库的内存分配 在过去 我会做类似以下的事情 假设是 C 11 constexpr int BUFFER SIZE 200 char bu
  • 如何将 char 转换为 unsigned int?

    我有一个字符数组 它实际上用作字节数组 而不是用于存储文本 在数组中 有两个特定字节表示我需要存储到无符号 int 值中的数值 下面的代码解释了设置 char bytes bytes 2 bytes 0 0x0C For the sake
  • 从字符串中修剪/删除制表符 ( "\t" )

    任何人都可以建议一种从字符串中删除制表符 t 的方法吗 CString 或 std string 例如 1E10 变为 1E10 hackingwords 的回答 https stackoverflow com questions 5562
  • string.split("(?!^)") 解释

    我正在尝试将字符串的字符拆分为字符串数组 我找到了解决方案here https stackoverflow com questions 5235401 split string into array of character strings
  • 反转java String.split()效果的方法? [复制]

    这个问题在这里已经有答案了 我正在寻找一种将字符串数组组合成分隔符的方法 细绳 与 split 相反 在我尝试自己编写之前想询问一下论坛 因为 JDK 拥有一切 据我所知 JDK 中没有任何方法可以实现这一点 阿帕奇公共语言 http co
  • 在 C++ 中查找精确的字符串匹配

    这是我用来检测 txt 文件中一行中的字符串的代码 int main std ifstream file C log txt std string line while file eof while std getline file lin
  • C# 中单个 & 符号的第二个含义是什么?

    我在 C 中使用了单个与号 来表示 检查second条件语句即使第一个是false 但以下似乎是不同的意思 of 总而言之 谁能解释一下如何i 1在下面的例子中有效吗 List
  • C++中delete和delete[]的区别[重复]

    这个问题在这里已经有答案了 可能的重复 C 中的删除与删除 运算符 https stackoverflow com questions 2425728 delete vs delete operators in c 我写了一个包含两个指针的
  • mprotect 之后 malloc 导致分段错误

    在使用 mprotect 保护内存区域后第一次调用 malloc 时 我遇到分段错误 这是执行内存分配和保护的代码片段 define PAGESIZE 4096 void paalloc int size Allocates and ali
  • 默认析构函数做了多少事情

    C 类中的默认析构函数是否会自动删除代码中未显式分配的成员 例如 class C public C int arr 100 int main void C myC new C delete myC return 0 删除 myC 会自动释放
  • 从 Delphi 调用 C# dll

    我用单一方法编写了 Net 3 5 dll 由Delphi exe调用 不幸的是它不起作用 步骤 1 使用以下代码创建 C 3 5 dll public class MyDllClass public static int MyDllMet
  • C 中带有指针的结构的内存开销[重复]

    这个问题在这里已经有答案了 我意识到当我的结构包含指针时 它们会产生内存开销 这里有一个例子 typedef struct int num1 int num2 myStruct1 typedef struct int p int num2
  • Delphi 5 的哈希表实现 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 您知道 Delphi 5 的良好且免费的哈希表实现吗 我需要在哈希表中组织大量数据 并且我有点担心在网
  • sizeof(某个指针)总是等于四吗?

    例如 sizeof char 返回 4 也是如此int long long 我尝试过的一切 这有什么例外吗 您得到的保证是sizeof char 1 没有其他保证 包括不保证sizeof int sizeof double 实际上 在 16
  • 将字符串转换为双精度 - VB

    VB中有没有一种有效的方法来检查字符串是否可以转换为双精度型 我目前正在尝试将字符串转换为双精度型 然后查看它是否引发异常 但这似乎减慢了我的申请速度 Try if number then format it current CDbl x
  • Delphi 流畅的界面

    使用上有什么优点和缺点流畅的界面 http en wikipedia org wiki Fluent interface在德尔福 流畅的界面应该会增加可读性 但我对此有点怀疑one包含很多链式方法的长 LOC 是否存在编译器问题 是否存在任
  • PHP 的 mb_internal_encoding 实际上是做什么的?

    根据 PHP 网站 http www php net manual en function mb internal encoding php它这样做 coding 是用于 HTTP 输入的字符编码名称 字符编码转换 HTTP输出字符编码 转
  • Delphi:写入后代类中私有祖先的字段

    我需要修复第三方组件 该组件的类具有私有变量 该变量由其后代主动使用 TThirdPartyComponentBase class private FSomeVar Integer public end TThirdPartyCompone
  • 更改特定字符串的颜色

    有谁知道如果将特定单词输入文本区域 我如何更改它的颜色 例如 如果用户输入 你好我的朋友 它会动态地将 你好 更改为绿色 在google上花了很多时间 找不到任何相关的东西 谢谢 textareas 的设计目的不是选择性着色
  • Objective C (iphone) 关于发布的问题

    如果我创建一个视图 并将其添加为子视图并将其添加到数组中 是否必须释放它两次 UIView cat UIView alloc initWithFrame someFrame self view addSubview cat self ani

随机推荐

  • 生成数字序列[重复]

    这个问题在这里已经有答案了 我想在 asp net mvc2 中创建序列号 那么数字应该从 0 to 1000 我尝试如下 var seq Enumerable Range 1 1000 ViewData OrderNo seq In vi
  • 如何设置 Apache mod_rewrite 以重定向除一个子文件夹之外的所有子文件夹

    我刚刚创建了一个新网站 并准备从当前的网络服务器切换到新的网络服务器 当前的网络服务器将更名为 www2 新的网络服务器将被称为 www 我想将所有流量从 www2 重定向到 wwwexcept对于一个目录 我的目录结构如下所示 var w
  • 我们可以只提供@2x 图像吗?

    我们知道我们应该为 iphone ipad 应用程序提供正常尺寸的图像和 2x 尺寸的图像 但为一张图像提供双倍尺寸是一件无聊的事情 我做了一些测试 如果只有 2x图像 如果需要 系统会自动将 2x图像缩小到正常大小 所以在这种情况下 非视
  • Tensorflow - LSTM - “张量”对象不可迭代

    您好 我正在对 lstm rnn 单元使用以下函数 def LSTM RNN X istate weights biases Function returns a tensorflow LSTM RNN artificial neural
  • 以编程方式设置 LinearLayout 的重力

    我已按照说明为 Unity 制作新的 AdMob 插件 广告显示正确 但底部位置有问题 它们显示在屏幕顶部 我已将重力设置为底部 对于 FrameLayout 但横幅广告再次显示在屏幕顶部 我没有任何带有 LinearLayout Fram
  • 具体图和需要更有创意的解决方案

    有向图 V a E b 给出 每个顶点都有特定的权重 我们想要每个顶点 1 a 找到从该顶点可以到达的具有最大权重的顶点 更新 1 Paul 在 O b a log a 中准备了一个很好的答案 但是我 搜索 O a b 算法 如果有 有没有
  • 占位符 CSS 调用问题

    通常我们使用这个想法 不同的类用逗号分隔 测试 test1 但是这里只要我们单独调用类就可以正常工作 为什么会出现这个问题 演示在这里http jsfiddle net 6AR8n http jsfiddle net 6AR8n seper
  • 在 docker 中运行的 Postgres 数据库一直挂起

    我正在使用 postgres docker 映像 在使用 docker 映像中运行的数据库几个月后 现在我得到的行为是 在一段时间后 它们只是挂起 我可以执行bin bash但根本不能用 postgres 做任何事情 命令不会返回 容器也无
  • Alfresco 社区企业功能对比

    我见过这个问题 https stackoverflow com questions 5256425 what is the difference between alfresco community edition and alfresco
  • Flutter 上传列表到 Google Firestore

    我想将我的 flutter 测试应用程序中的列表添加到我的 Google Firestore 这是我的方法 它添加了所有数据 void postToFireStore String mediaUrl String location Stri
  • 交错电子邮件地址数组,避免具有相同域的项目连续

    我正在寻找一种在 C 中对电子邮件地址数组进行排序的有效方法 以避免具有相同域的项目连续 数组内的电子邮件地址已经是不同的 并且全部都是小写 Example 给定一个包含以下条目的数组 email protected cdn cgi l e
  • 如何更改数据表中排序箭头的颜色

    我在用DataTables我需要将排序箭头的颜色从默认 紫色 更改为其他颜色 我正在尝试的代码正在更改整个标题行颜色 而我只需要图标 是否还有其他课程 因为下面的代码对我没有帮助 CSS table dataTable thead sort
  • 如何显示/设置矩阵输入的行名称(shinyIncubator)

    我可以使用创建一个矩阵matrixInput功能 df lt data frame matrix c 0 0 1 2 colnames df lt c Input1 Input2 rownames df lt c rown1 matrixI
  • Bug 报告者:getDisplayMedia 的替代品?

    我正在尝试在我的网站上实现错误报告器 我的目标是用户能够在解决问题时以声音描述问题并记录浏览器选项卡 错误报告将只是一个视频文件 可以通过电子邮件发送给我 看来提议的navigator mediaDevices getDisplayMedi
  • 使用 Selenium Webdriver 获取 div 内的项目列表

    假设我有以下内容 div class facetContainerDiv div div div
  • 为什么 Microsoft Graph 需要 $select 和 $expand=extensions?

    在 Graph Explorer 中 当我验证并使用 获取开放扩展 示例时 它会针对此端点执行 GET https graph microsoft com v1 0 me select id displayName mail mobileP
  • 禁用 Tensorflow 调试信息

    我所说的调试信息是指 TensorFlow 在我的终端中显示的有关加载的库和找到的设备等的信息 而不是 Python 错误 I tensorflow stream executor dso loader cc 105 successfull
  • 如何让 hg log 显示我时区的提交时间戳

    hg log默认情况下显示提交时区的提交时间戳 是否可以使其显示特定时区的时间戳 理想情况下 解决方案不需要任何外部工具 hg log template date localdate rfc822date n 因此 您获取日期 将其转换为本
  • 缺少功能{name=auth_api_credentials_begin_sign_in,version=6}

    我正在尝试对我的应用程序使用 Google 身份验证方法 一键登录 然而 当我点击签名按钮后 我遇到了以下问题 W GoogleApiManager com google android gms internal auth api zbaz
  • Delphi - 结构的字符串没有被释放 [FastMM 管理器]

    如果我声明 PSomeStruct TSomeStruct TSomeStruct record s1 string end 我运行以下代码 var p PSomeStruct begin new p p s1 something bla