可以使用SetLength()调整引用计数接口的动态数组是否会导致内存泄漏?


Moso31
2025-03-14 11:11:15 (8天前)


如果我有一个引用计数接口的类型声明。

类型
ISomeInterface =接口
[ ‘{为xxxx-xxxx-XXX-XXXX-XXX}’]
程序doThing();
结束;



2 条回复
  1. 0# 筱梨 | 2019-08-31 10-32



    不,没有泄漏。



    内存管理器将尝试就地扩展现有内存块。如果可以,则不会影响参考。但是,如果它不能,它会将数组复制到一个新的内存块。生成的接口引用将具有与复制之前相同的引用计数。增加数组的大小不会添加或删除现有数组元素的引用,只会将它们从一个内存位置移动到另一个内存位置。这非常安全。



    接口和动态数组都是托管类型,编译器和RTL将正确管理它们。


登录 后才能参与评论