鉴于上面的原因,最终还是选择使用C++实现了相关的程序代码,获取内存占用的方法采用了重载全局 new 操作符的方式:
// C++
void* operator new(std::size_t count...)
{
mem_record::add_mem(count);
return malloc(count);
}
比起之前C#的实现,C++的实现就显的"底层"很多,需要考虑不少额外的代码细节,当然,...];
不想自己管理内存的朋友可能还会使用 std::vector 之类的容器....但是对于多维数组,似乎动态申请的方式就没有这么直观了:
// C++
int** array = new int*[row];
for (int i = 0; i < row; ++i)
{
array...[i] = new int[col];
}
概念上其实就是"数组的数组",同样的,如果使用容器,你就需要 std::vectorstd::vector> 这样的定义.