【发布时间】:2021-06-17 23:08:37
【问题描述】:
鉴于类似:
char *a = malloc(m);
char *b = malloc(n);
char *c = malloc(o);
一旦你完成了内存块,这是正确的:
free(a);
free(b);
free(c);
这是这样的:
free(c);
free(b);
free(a);
但必须使用一个或另一个顺序,并且有选择一个的基础更令人满意。
是否有任何现有的实现对内存碎片或释放内存和满足后续分配请求的速度有任何影响?如果是这样,哪个顺序更有效?或者有没有其他选择订单的依据?
【问题讨论】:
-
理想情况下,按照拥有它们的智能指针被销毁的顺序。
标签: c++ c memory-management malloc