0

我有一个解析文件的函数,并将其数据放入动态分配的结构数组中。该函数返回这个动态分配的用户定义数据类型的数组。我想释放这个在解析函数中使用的数组,我该怎么做?这是我用来分配数组的代码。

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;

感谢大家!

4

2 回答 2

1

只需使用:

free(pDownloads);

释放数组对象。

对于每个malloc呼叫,您都应该有一个free呼叫。

于 2013-07-12T14:50:19.513 回答
0

所以,让我们猜猜,你有一个包含你发布的代码的函数,比如

DownloadDescription_t * yourFunctionName( ... )

然后你在 main 中调用它,因为你返回指向 main 的指针,你需要一个值来存储它,就像:

DownloadDescription_t * newName = yourFunctionName( ... );

然后你使用指针和数据做你需要的一切。

毕竟,现在您确定需要清除内存,只需使用:free (newname);

好的,现在你可以做其他事情并结束你main

于 2013-08-10T02:46:39.130 回答