作者热门文章
- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
在我的模板函数中,我有以下代码:
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;
}
这会导致“检测到堆损坏”错误。如果我不调用 free() 函数,则不会发生错误,但我担心会造成内存泄漏。正确的方法是什么返回“storage”的值然后释放内存?
最佳答案
您不需要分配存储,您可以将您的result 变量传递给一个函数来执行您的魔法操作。像这样。
void magic(void *buffer)
{
// magic stuff
}
TypeName foo()
{
TypeName result;
magic(&result);
return result;
}
或者当然你可以将你的 TypeName 结构设置为位域或任何你的魔术代码操作......
关于c++ - 堆腐败问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2373476/
一个特定文档不会更新,而同一查询会更新我查询的任何其他 _id: Category.findOneAndUpdate( {_id : req.params.id}, {parent :
我正在使用 ifstream 读取文件头。编辑:我被要求放置完整的最小程序,所以就在这里。 #include #include using namespace std; #pragma pack(
typedef struct { int *info; } row; struct { row* head; int len; int size; } list; in
在索引 block 时我在 debug.log 中有错误: 2016-11-14 15:14:52 UpdateTip: new best=000000000000038ad111e773453f17
我是一名优秀的程序员,十分优秀!