【发布时间】:2020-09-17 13:30:31
【问题描述】:
由于我无法删除数组并且我想清理内存,因此是否有可能使结构的静态数组指向 NULL?
假设我们有以下代码:
struct_x defaultStructX[6];
struct_x requiredStructX [6];
gettingDefaultX(defaultStructX, 6);
for (uint8_t i = 0; i <6; i++)
{
setStructX(requiredStructX[i].index, requiredStructX[i].icirate, requiredStructX[i].icis, requiredStructX[i].iei);
//error handle case
if (status == STATUS_SUCCESS)
{
writeResponse.writeStatus = status_ok; /*This is another struct not important at this point*/
} else
{
errorHandleQciFlowMeter(defaultStructX, 6);
writeResponse.writeStatus = status_nok;
break;
}
}
/*here I want to write code line to clean the defaultStructX from memory. Is it possible? I have tried *defaultStructX[i]= NULL and ##((void*)defaultQciFlowMeter) = NULL; ## and many other methods but it didn't work*/
【问题讨论】:
-
数组不是指针。如果你有一个数组类型的变量,你不能手动改变它的生命周期。
-
为什么要“清理内存”,这意味着什么?
标签: arrays c optimization struct null