![]() |
1
8
我不知道你第二段中的问题,但有一次我被记录中泄露的字符串咬到了。 如果你打电话 FillChar() 在包含字符串的记录上,用零覆盖动态分配内存的引用计数和地址。除非字符串为空,否则将泄漏内存。解决这个问题的办法是打电话 在清除记录占用的内存之前,先对其进行备份。 不幸的是 当没有需要终结的记录成员时,会导致编译器提示。我碰巧把那封信注释掉了 定稿 调用以使提示静音,但后来当我向记录中添加字符串成员时,我没有取消对调用的注释,因此引入了泄漏。幸运的是,在调试模式下,我通常在最详细和最偏执的设置中使用FastMM内存管理器,因此泄漏不会被忽略。 定稿 如果不需要的话打电话给IMHO会更好。 |
![]() |
2
4
不,我认为这样的事情不会发生。字符串变量有可能获得您不期望的值,但不会泄漏内存。考虑一下:
字符串没有泄漏,但此代码确实演示了如何获取
悬挂参考
为了一根绳子。
泄漏字符串的唯一方法是将其视为字符串以外的内容,或者使用非类型感知的内存管理函数。
Mghie's answer
描述如何使用
另一种是使用类型感知功能:
|
![]() |
3
2
实际上,在Delphi2007和2009中,作为常量或非常量传递字符串在引用计数方面是相同的。当字符串作为常量传递时,会导致访问冲突。这是一个问题
|
![]() |
4
1
泄漏字符串的另一种方法是将其声明为threadvar变量。看见 my question 详情请参阅。有关解决方案,请参见 the solution on how to tidy it |
![]() |
5
0
我想 this 可能和我想的差不多。它与字符串泄漏相反,字符串很早就被收集:
|
![]() |
Dima Malko · 如何在指定符号前添加符号? 2 年前 |
![]() |
shekharsabale · 从列表元素捕获子字符串 2 年前 |
![]() |
Manny · 如何比较Perl中的字符串? 2 年前 |
![]() |
Manan Girdhar · 拆分字符串并仅在java中使用第二部分 2 年前 |
![]() |
AnxiousLuna · Python使用len()获取数组索引数 2 年前 |
![]() |
antonoyaro8 · 数据帧中每列上的Grepl 2 年前 |