我有一个 C++ 程序,可以对不同长度的输入数组的各种算法进行基准测试。它或多或少看起来像这样:
# (1)
for k in range(4..20):
# (2)
input = generate 2**k random points
for variant in variants:
benchmark the following call
run variant on input array
# (3)
是否可以将 (2) 处的整个堆管理重置为 (1) 处的状态?在程序期间分配的堆上分配的所有内存都保证在 (3) 处被释放。
我在 Linux 上使用 g++ 4.3。
编辑:我知道 C/C++ 中没有真正的垃圾收集。我想强制内存分配在 (2) 处加入它在其空闲列表中的相邻空内存块。