在C中,如果函数返回一个结构,在使用它之后是否需要删除该结构?

typedef typedef struct _OBJTIME {
    WORD wYear;
    WORD wMonth;
    WORD wDayOfWeek;
    WORD wDay;
    WORD wHour;
    WORD wMinute;
    WORD wSecond;
    WORD wMilliseconds;
} OBJTIME

OBJTIME objTime; //Note, this objTime is modified other function
OBJTIME ObjectParent::returnObjTime() const
{
    return objTime;
}

我的问题是:

>如果另一个类调用returnObjTime()函数,比如说:

OBJTIME t = objectP-> returnObjTime()
我假设将创建一个OBJTIME结构的新副本?
>我完成后是否需要删除变量“t”?它会造成内存泄漏吗?

谢谢.

最佳答案
不,您正在返回全局objTime的副本,副本和全局都有基于其作用域的持续时间,这意味着当它们的作用域结束时,它们将自动从内存中释放.

转载注明原文:在C中,如果函数返回一个结构,在使用它之后是否需要删除该结构? - 代码日志