这段代码怎么才能运行? 使用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")

}


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

原文地址: http://outofmemory.cn/tougao/6655265.html

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

发表评论

登录后才能评论

评论列表(0条)

保存