- 563 名前:デフォルトの名無しさん mailto:sage [2009/09/15(火) 00:47:20 ]
- void test(unsigned nmegabytes, std::vector<void *>& saver) {
unsigned alloced = 0; printf("[%u]MByte\n", nmegabytes); for (;;) { void *p = malloc(nmegabytes * 1024 * 1024); if (!p) { printf("malloc() returns NULL at allocated %uMB\n", alloced); break; } *(int *)p = 0; // アクセス違反で落ちる? alloced += nmegabytes; saver.push_back(p); } // clear for (std::vector<void *>::iterator it = saver.begin(), end = saver.end(); it != end; ++it) { free(*it); } saver.clear(); } int main() { std::vector<void *> saver; saver.reserve(4 * 1024); test(1, saver); test(50, saver); test(500, saver); }
|

|