此代码最多可占用1.5GB内存,并且不会释放它。
为什么?我希望在调用bigone函数后释放内存。
如何解决这个问题?
#include <iostream>
#include <jsoncpp/json/json.h>
#include <jsoncpp/json/value.h>
typedef unsigned char utiny;
void watchmem() {
char k;
std::cout << "watch memory consumption then press a key ";
std::cin >> k;
}
void bigone() {
Json::Value conf = Json::arrayValue;
for(utiny i = 0; i < 255; i++) {
for(utiny j = 0; j < 255; j++) {
for(utiny k = 0; k < 255; k++) {
conf[i][j][k] = 0;
}
}
}
}
int main(int argc, char **argv) {
bigone();
watchmem();
}
构建
g++ -std=c++11 -o chkmem chkmem.cpp -ljsoncpp && ./chkmem