在我的模板功能,我有以下代碼:堆腐敗問題
TypeName myFunction()
{
TypeName result;
void * storage = malloc(sizeof(TypeName));
/*Magic code that stores a value in the space pointed to by storage*/
result = *(TypeName *)storage;
free(storage);
return result;
}
這會導致error.If我不調用free()函數的「檢測出堆損壞」,誤差不發生,但我擔心我正在創建一個內存泄漏。如何返回「存儲」的值然後取消分配內存?
線索在「假設」一詞中。什麼是'sizeof Typename'? – 2010-03-03 17:30:03
你的錯誤可能在「魔法代碼」中。我們可以偷看嗎? – 2010-03-03 17:31:27