|
|
1
31
试着把问题转过头,问如何限制操作系统允许您的进程使用的内存量。 试着调查 http://ss64.com/bash/ulimit.html 试着说: ULIMIT -V 这是另一个有点旧但有点背景的链接: http://www.network-theory.co.uk/docs/gccintro/gccintro_77.html |
|
|
2
9
一种方法是围绕malloc()编写包装。
你可以用一个定义来超载你的malloc。 正如GMan所言,也可以重载Neal/Debug运算符(C++案例)。 不知道这是不是最好的方法,或者你在找什么 |
|
|
3
5
|
|
|
4
3
|
|
|
5
3
重写新的和新的[]。
将您自己的代码放在大括号中,以便在对new的x个调用之后选择性地消亡。通常您会调用malloc来分配内存并将其返回。 |
|
|
6
3
另一种方法是使用 failmalloc 它是一个共享库,覆盖malloc等,然后失败:-)。它可以让你控制何时失败,并且可以让你随机失败,每N次等等。 我自己没用过,但听到了好消息。 |
|
7
2
我曾经有一个学生在CS 1上(在C上,是的,是的,不是我的错),尝试这个方法,然后内存耗尽:
然后他想知道为什么会出错… |
|
|
8
1
如果你想花钱,有一个叫做Holodack by SecurityNovations的工具,它可以让你在程序中注入错误(包括内存不足)。好事情是你可以随意打开和关闭东西。我并没有真正使用过它,所以我不知道是否可以用这个工具在某些地方对故障进行编程。我也不知道支持哪些平台… |
|
|
9
1
据我所知,在Linux上, malloc 永远不会返回空指针。相反, OOM Killer 将被呼叫。当然,这是,除非你禁用了OOM杀手。一些谷歌搜索应该会得出一个结果。 我知道这不是你真正的问题,但这与你来自哪里有关。 |