我試圖在函數返回使用的malloc陣列功能:免費分配的內存之前返回
char* queueBulkDequeue(queueADT queue, unsigned int size)
{
unsigned int i;
char* pElements=(char*)malloc(size * sizeof(char));
for (i=0; i<size; i++)
{
*(pElements+i) = queueDequeue(queue);
}
return pElements;
}
的問題是,我需要免費它,因爲我的MCU的堆大小是有限的。但我想返回它,所以我不能釋放它的功能,對吧?我可以釋放分配的內存以外的功能(我稱之爲功能)。有沒有這方面的最佳做法?先謝謝你!
您將不得不在功能外部釋放它。無論如何,沒有要求malloc的內存必須在函數內部釋放。 – futureelite7 2012-08-01 04:03:21
當然。這是'malloc'的全部要點。如果你不能這樣做,就沒有理由爲'malloc'創建任何東西。 – 2012-08-01 05:24:45