快速提问:我是一个调试 C++ 应用程序的 C# 人,所以我不习惯内存管理。
在以下代码中:
for(int i = 0; i < TlmMsgDB.CMTGetTelemMsgDBCount(); i++)
{
CMTTelemetryMsgCls* telm = TlmMsgDB.CMTGetTelemetryMsg(i);
CMT_SINT32_Tdef id = telm->CMTGetPackingMapID();
ManualScheduleTables.SetManualMsg(i,id);
ManualScheduleTables.SetManExec(i,false);
}
我是否在
CMTTelemetryMsgCls* telm = TlmMsgDB.CMTGetTelemetryMsg(i);
的每次迭代 b/c 中泄漏内存? “CMTGetTelemetryMsg(int)”方法返回一个指针。我是否必须在每次迭代结束时使用“
delete telm;
”? 最佳答案
这个问题没有全局性的答案。
这实际上取决于此人如何使用返回值实现函数。
您需要查看您正在调用的函数的实现:
TlmMsgDB.CMTGetTelemetryMsg
关于c++ - For 循环中的指针,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2562540/