例如:定义a[10]却赋值a[12]=100
2、指针未分配内存(即专业人士所说的野指针)就直接使用,导致访问不允许访问的内存单元;
例如:int *p没分配内存就赋值*p=25
3、标准C函数未按要求调用,有时会出错误结果,有时会导致程序崩溃;
4、试图修改不允许修改的指针。
例如:
int a[20], b[30]
a=b //试图将数组a所等价的指针a直接指向数组b,这肯定会出错
目前我只想到这4条。
代码中的数组:long long a[200000005],是否消耗太多内存?至少要消耗1.5G的内存。
main()开头的2个freopen函数调用,没发现任何作用,是否有问题?
如果满意,欢迎采纳我的解答,谢谢
如有疑问,欢迎追问
这种情况叫做 runtime error (运行时错误)。
在 Windows 7 上这样提示:
在 Windows XP 上这样提示:
runtime error (运行时错误)就是程序运行到一半,程序就崩溃了。
比如说:
①除以零
②数组越界:int a[3] a[10000000]=10
③指针越界:int * p p=(int *)malloc(5 * sizeof(int)) *(p+1000000)=10
④使用已经释放的空间:int * p p=(int *)malloc(5 * sizeof(int))free(p) *p=10
⑤数组开得太大,超出了栈的范围,造成栈溢出:int a[100000000]
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)