gpt4 book ai didi

c - 如何模拟内存分配失败?

转载 作者:行者123 更新时间:2023-11-28 20:01:44 25 4
gpt4 key购买 nike

我想广泛测试一些 C 代码的内存泄漏。

在我的机器上,我有 4 Gb 的 RAM,因此动态内存分配不太可能失败。如果内存分配失败,我还是想看看代码的表现,看看恢复机制是否足够“强大”。

你有什么建议?如何模拟内存规范较低的环境?我如何模拟我的测试?

编辑:我希望我的测试独立于代码。我只能“访问”我正在测试的库中不同函数的返回值。我不应该在我正在测试的代码中编写“测试逻辑”。

最佳答案

做一个 malloc 和 free 的包装器,你可以把你自己的逻辑放在那里,当它失败时,当它不失败时。

然后:

#define malloc(X) (myMalloc(X))
#define free(X) (myFree(X))
#define realloc(X, Y) (myRealloc(X, Y))
#define calloc(X, Y) (myCalloc(X, Y))
#define valloc(X) (myValloc(X))

您可以在整个代码中根据需要#define#undef 宏。

关于c - 如何模拟内存分配失败?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2592107/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com