自由指向数组的指针?

时间:2013-02-21 11:50:41

标签: objective-c

我有一个目标c函数,一行执行此操作:

    for(int k=0;k<numOfBuffers;k++)
{

 float *temp=getFFT(buffersRing[k],buffersRing[k][0]);
......// do stuff with temp

fft函数返回指向512个浮点数组的指针

float* getFFT(int16_t *q, int bufferL)

我的问题:

  1. 在一次又一次定义*temp的函数内部,我是否需要稍后free所有临时指针,或者它们是否自动超出了该函数?
  2. 如果我想在for loop之后释放这个空间INSIDE那个函数,我该怎么做(在代码中......) 感谢。

2 个答案:

答案 0 :(得分:1)

指针temp本身是函数内部的自动变量;当函数退出时它会消失。

temp指针指向的内存不会自动取消分配。

您必须知道getFFT()函数是否期望调用者释放内存。这可以通过任何一种方式实现,并且从您显示的API中不清楚。

答案 1 :(得分:0)

  1. 是的,您需要释放temp指向的内存,否则会有内存泄漏。
  2. 你必须将循环中的temp声明移动到abel,以释放它在循环外面指向的内存。