我有一个解析文件的函数,并将它的数据放入一个动态分配的结构数组中。该函数返回此动态分配的用户定义数据类型的数组。 我想释放解析函数中使用的这个数组,我该怎么做?这是我用来分配数组的代码。
DownloadDescription_t* pDownloads = (DownloadDescription_t*) malloc(MDLFDescription -> uiNumberOfLocations *sizeof(DownloadDescription_t));
DownloadDescription_t结构的定义如下:
typedef struct
{
UINT uiIndex;
UINT uiDateAdded;
char caFileName[129];
char caUserName[50];
char caSubsystem[10];
} DownloadDescription_t;
谢谢大家!
答案 0 :(得分:1)
只需使用:
free(pDownloads);
释放数组对象。
对于每次malloc
来电,您应该只有一次free
来电。
答案 1 :(得分:0)
所以,我们猜测,你有一个函数包含你发布的代码,比如
DownloadDescription_t * yourFunctionName( ... )
然后你在main中调用它,因为你将指针返回到main,你需要一个值来存储它,就像:
DownloadDescription_t * newName = yourFunctionName( ... );
然后你使用指针和数据做你需要的一切。
毕竟,现在你确定只需使用内存:free (newname);
好了,现在你可以做其他的事情并结束你main
。