这段代码怎么才能运行? 使用win7 64位系统+ devc++4.9.9.2编译可以通过但是调试提示段异常,i=2098时出错

这段代码怎么才能运行? 使用win7 64位系统+ devc++4.9.9.2编译可以通过但是调试提示段异常,i=2098时出错,第1张

这个问题实际上就是由于内存分配不足(从你使用imax=pow(2,28)时可以正常运行这个情况可以持出来),而你又没有做内存检测造成的。

你做一下检测,再进行赋值运算才行。另外,你手动申请的内存,应该要记得释放。

虽然你的电脑,内存是8G,但实际上,这8G你开机之后就不可能有8G了,所以实际上你最多是分配不到8G这么大的空间的。

#include <math.h>

#include <malloc.h>

#include "stdlib.h"

main()

{

long long i,imax

imax=pow(2,30)//2的30次方

float *P=(float *)malloc(imax * sizeof(float))//sizeof(float)应该是4,所以你分配了2的32次方比特的空间,大约是4*1024*1024*1024,就是4G空间,运行这个程序前你最好去看下你的电脑,系统内存是不是还有4G

if(P==0)

{

printf("系统内存不足,请减小你需要申请的内存空间")

exit(0)

}

for(i=0i<imaxi++)

P[i]=0

free(P)

getch()

}

8G 空间就是2的33次方比特这么大的空间。

#include <stdio.h>

int main()

{int a,b,c

scanf("%d,%d",&a,&b)//因为这里有一个回车,你后面补一个getchar()没有用,要补两个

c=a+b

printf("%d\n",c)

system("pause")

}

DevCon.exe是一种命令行实用工具,可以替代设备管理器。使用 DevCon,您可以启用、禁用、重新启动、更新、删除和查询单个设备或一组设备。DevCon 提供与开发人员有关但无法在设备管理器中看到的信息。

您可以将 DevCon 用于 Windows 2000 、Windows XP和Windows vista。不能将 Devcon 用于 Microsoft Windows 95、Windows 98、或 Windows Millennium Edition。

DevCon 用于 Windows 2000 、Windows XP和Windows vista。不能将 Devcon 用于 Microsoft Windows 95、Windows 98、或 Windows Millennium Edition。下载: http://download.microsoft.com/download/1/1/f/11f7dd10-272d-4cd2-896f-9ce67f3e0240/devcon.exe 下载个文件放在X:\WINDOWS\system32下面试试 如果不行那就 用不茑。


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

原文地址: https://outofmemory.cn/tougao/6504275.html

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

发表评论

登录后才能评论

评论列表(0条)

保存