我是否必须以及如何从已返回到托管 C# 项目的 Windows 运行时组件中创建的值结构中释放内存?
我声明了该结构
// Custom struct
public value struct PlayerData
{
Platform::String^ Name;
int Number;
double ScoringAverage;
};
like
auto playerdata = PlayerData();
playerdata.Name = ref new String("Bla");
return playerdata;
我是释放内存的新手,不知道如何以及何时释放它。
任何人?
When a 值结构被分配给另一个变量,它的成员是copied,这样两个变量都有自己的数据副本(请参阅值类和结构 (C++/CX) https://msdn.microsoft.com/en-us/library/windows/apps/hh699861.aspx)。从函数返回值结构时,适用相同的规则。
在你的代码中你有playerdata
,类型的对象PlayerData
具有自动存储期限。这return
声明复制了playerdata
(包括Platform::String^
成员),并将此副本返回给调用者。在那之后,playerdata
超出范围并自动销毁。
换句话说:您发布的代码按预期工作。您不必显式释放任何内存。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)