c++ - 在函数返回后释放动态分配的结构数组。

标签 c++ c pointers malloc

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

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;

谢谢大家!

最佳答案

只需使用:

free(pDownloads);

释放数组对象。

对于每个 malloc 调用,您应该只有一个 free 调用。

关于c++ - 在函数返回后释放动态分配的结构数组。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17617716/

相关文章:

c++ - 如何改变窗口的音量?

c++ - 无法安装 R 包 "nloptr"(Ubuntu 16.04 上的 R3.6.2)- C++ 编译器问题

c++ - 将 [char] 变量转换为 [int],然后再转换回 [char]

c - 当输入通过时如何结束输入

c++ - 如何在 mac arm 上构建 libtorch?

c++ - 将局部变量声明为右值引用是否无用,例如T&& r = move (v)?

c - 在 C 中生成排序数组的 n 路交集的高效算法

c++ - 指向设备常量的 CUDA 指针

c++ - '(也许你打算使用 ‘->’ ?)' 在 gmock 测试

谁能帮我解决这个结构/指针问题吗?