LINUX.ORG.RU

История изменений

Исправление Gary, (текущая версия) :

Вот кстати посмотрел через pagemon, malloc_trim «пробивает дырку»

#include <iostream>
#include <vector>

#include <malloc.h>
#include <sys/types.h>
#include <unistd.h>

int main(void) {
	std::cout << "My pid: " << getpid() << std::flush;
	int sz = 0x2ffff;
	std::vector<char*> addr;
	addr.reserve(sz);
	
	for (int i = 0; i < sz; i++)
	{
		addr.push_back(new char[32]);
	}
	system("read");
	
	for (int i = 1; i < sz - 1; i++)
	{
		delete[](addr.at(i));
	}

	system("read");
	malloc_trim(0);
	system("read");
}

Исходная версия Gary, :

Вот кстати посмотрел через pagemon, malloc_trim «пробивает дырку»

#include <iostream>
#include <vector>

#include <malloc.h>
#include <sys/types.h>
#include <unistd.h>

int main(void) {
	std::cout << "My pid: " << getpid() << std::flush;
	int sz = 0x2ffff;
	std::vector<char*> addr;
	addr.reserve(sz);
	
	for (int i = 0; i < sz; i++)
	{
		addr.push_back(new char[32]);
	}
	system("read");
	
	for (int i = 1; i < sz - 1; i++)
	{
		delete[](addr.at(i));
	}

	system("read");
	malloc_trim(0);
	system("read");
}