在我的模板功能,我有以下代码:堆腐败问题
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