相关疑难解决方法(0)

Linux分配器不会释放小块内存

Linux glibc分配器似乎表现得很奇怪.希望有人可以对此有所了解.这是我的源文件:

first.cpp:

#include <unistd.h>
#include <stdlib.h>
#include <list>
#include <vector>

int main() {

  std::list<char*> ptrs;
  for(size_t i = 0; i < 50000; ++i) {
    ptrs.push_back( new char[1024] );
  }
  for(size_t i = 0; i < 50000; ++i) {
    delete[] ptrs.back();
    ptrs.pop_back();
  }

  ptrs.clear();

  sleep(100);

  return 0;
}
Run Code Online (Sandbox Code Playgroud)

second.cpp:

#include <unistd.h>
#include <stdlib.h>
#include <list>

int main() {

  char** ptrs = new char*[50000];
  for(size_t i = 0; i < 50000; ++i) {
    ptrs[i] = new char[1024];
  }
  for(size_t i = …
Run Code Online (Sandbox Code Playgroud)

c++ memory heap allocation

15
推荐指数
3
解决办法
3549
查看次数

标签 统计

allocation ×1

c++ ×1

heap ×1

memory ×1