16得票2回答
动态数组在超出作用域时是否自动取消分配?

在这个例子中。procedure foobar; var tab:array of integer; begin setlength(tab,10); end; 这个数组是被销毁了还是存在内存泄漏?

16得票2回答
Python C-API函数借用和窃取引用

在 Python C-API 中的标准约定是: 函数不会从输入参数(对象)中窃取引用 返回值和输出参数(对象)拥有一个引用 大多数 Python C-API 中的函数都遵循这种约定。然而,也存在例外情况。我发现了下面这些函数: 从输入参数中窃取引用的函数PyModule_AddObj...

15得票2回答
Delphi接口引用计数

今天我在测试时遇到了一个奇怪的情况。 我有许多接口和对象。代码看起来像这样: IInterfaceZ = interface(IInterface) ['{DA003999-ADA2-47ED-A1E0-2572A00B6D75}'] procedure DoSomething; en...

15得票1回答
Rust如何处理引用计数类型的“孤岛效应”(循环引用)场景?

Rust如何处理Rc和Arc的“孤岛”场景? “孤岛”是指对象A包含对对象B的指针,而对象B包含对对象A的指针,但是在其他地方没有对这两个对象的任何指针。 Rust是否能够智能地检测到这种情况,还是会导致内存泄漏?

15得票6回答
值类型引用循环?

在Swift中,当引用类型的属性彼此之间(或与闭包一起)拥有强烈的所有权时会发生引用循环。 然而,仅限于值类型是否存在引用循环的可能性? 我在playground中尝试过,但没有成功(错误:不允许递归值类型'A')。struct A { var otherA: A? = nil ...

14得票5回答
为什么VC++的字符串没有引用计数?

STL标准并不要求std::string必须是引用计数的。但实际上,大多数C++实现提供了引用计数、写时复制字符串的方式,使得您可以将字符串作为原始类型通过值传递。此外,这些实现(至少g++)使用原子操作,使得这些字符串无锁并且线程安全。 简单的测试表明具有写时复制语义:#include &...

13得票2回答
在不模拟循环数据结构的单线程应用程序中,何时需要使用引用计数?

Rust可以通过Rc非常优雅地处理引用计数。似乎社区的许多成员更喜欢使用语言的所有权/借用语义而不是使用Rc。这样编写的程序更简单,但除了循环引用之外,是否有必要呢? 显然,在跨线程方面,情况变得更加复杂。因此,为了简化我试图学习的内容,"在单线程应用程序中,除了作为编写时优化之外,...

13得票6回答
将非NSObject对象添加到NSMutableArray

最近的 Stack Overflow 讨论 让我感到困惑。NSMutableArray 的 addObject: 原型是 - (void)addObject:(id)anObject 同时id在objc.h中被定义为typedef struct objc_class *Class; type...

13得票2回答
何时需要使用NS_RETURNS_RETAINED?

以下是一个示例:- (NSString *)pcen NS_RETURNS_RETAINED { return (__bridge_transfer NSString *)CFURLCreateStringByAddingPercentEscapes(NULL, (__bridge C...

13得票5回答
为什么JVM在引用计数为0时不立即销毁资源?

我一直想知道为什么Java中的垃圾回收器会在感觉合适的时候自行激活,而不是执行:if(obj.refCount == 0) { delete obj; } Java采用的方式有哪些重要的优势是我忽略了的吗? 谢谢