我对C程序中释放内存有疑问。 我不知道内存如何被释放。以下是两种情况,我不确定我是否需要释放内存。下面如何以及何时释放指针中的资源
是代码片段
int status=0;
char *grade="high";
status=getPreviousReports(grade, year);
free(grade);
我的疑问是,getPreviousReports是做一个SOAP调用和及格吧。之后,它破坏了内存中的肥皂对象,它在形成肥皂对象时使用了等级。
如果我使用下面的代码,那么我是否需要不显式释放等级?
status= getPreviousReports("high", year);
请帮助我了解如何以及何时需要释放内存。
在此先感谢。
你只需要释放你分配的东西。等级变量只是一个指向常量字符串的指针。对于大多数实现,等级变量可能分配在堆栈中。当你从功能返回时它将“释放”。 “高”常量永久分配在某个恒定的内存块中,不能释放。 – lit