c语言怎么测试内存分配失败时的代码

c语言怎么测试内存分配失败时的代码,第1张

#include <stdio.h>

#include <malloc.h>

int main()

{

while(true)

{

int *p=(int *)malloc(sizeof(int)*1024*1024)

printf("%p\n",p)

if (p==NULL)//要到内存分配完为此仿茄耐备春

{

printf("Error!\n")

return -1

}

}

return 0

}

//给个例子吧...一纳租个程序可占多少内存就得看是多少位的系统了32是4GB

//而所能申请的内存<4GB,因为程序代码会占用一些内存,堆栈也要占用内存,实际上是分配不了4GB的

这个软件的测试原理就是不停地对内存进行读写,从而发现内存中存在错误的区域。虽然是内存测试软件,不过它也挺考验CPU的,当你运行它的时候你会发现被这个软件占用的那个CPU核心(如果你电脑是多核心的话)占用率直接到了百分之百。这样看来,如果你的电脑是单核心的那就只运行一个MEMTEST好了,运行得多了也快不了多少。如果你的电脑是多核心的那就多开一个,我个人觉得处理器是几个核心的就同时运行几个效率比较高。当你只运行一个的时候内存大小就直接设为你的物理内存大小就可以了,比如你的768MB。再顺便提一下,有时会碰到无法分配内存的情况,那就开两个测试程序,然后将测试内存大小填小一点。如果你的电脑是双核甚至是多核心的那就多开几个同时测试,这样每个测试程序可以少分一点测试内存,效率会高些。一般来说开几个程序就把内存平均分成几分进行测试,这样既能保证完全测试了内存又兼顾了速度。例如你运行了三个MEMTEST程序,那就把你的内存分成三份,每个程序分配256MB的内存进行测试。要注意的是不管你运行几个MEMTEST,在所有的测试卖昌念程序上分配的内存总和可以比物理内存大小稍大一些,但不要大中困太多,否则它会连虚拟内存也进行测试,这个却不是我们需要的。开始测试后就不要管它了,如果碰到内存读写错误它就会报错。测试时间迅睁一般推荐至少在20分钟以上,也不那么绝对,测试时间当然还会跟内存大小和读写速度有关了。软件下面有个进度指示,用百分比表示,代表你所分配的内存测试完多少。我觉得至少要让每个程序都达到200%以上,也就是说将内存测试完两遍。尤其是连一遍都没测试完的时候,可别急着下内存正常的结论。

链接: https://pan.baidu.com/s/1YXcSJlsluEQ_8iVhfck5dA

提取码:mfut  

软件名称:TestMem5(内存测试程序)V0.12免费版

语言:简体中文

大小:26KB

类别:系统工具

介绍:TestMem5(内存测试程序)免费版是一款十差猛分好用的电脑内启庆裂存检测工具。TestMem5(内存测试程序)免费版可悄闭以帮助用户快速的检测电脑中内存稳定度和系统的储存能力。而且软件十分的小巧,不会占用非常多的电脑内存。有需要的小伙伴快来下载使用吧!


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12247015.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-22
下一篇 2023-05-22

发表评论

登录后才能评论

评论列表(0条)

保存