#2146. C++-编译-Process exited after xxx seconds with return value 一个很大的数

C++-编译-Process exited after xxx seconds with return value 一个很大的数

Background

Description

请检查以下问题

1. 调用没有对象的野指针,建议在定义指针的时候new或者malloc一块空间给它(不要直接给指针赋0)

比如:

int* p;   //p是没有对象的野指针
*p=3;    //对野指针所指区域赋值

建议改成(malloc需要加<stdlib.h>头文件,C++中直接用new),:

int* p=(int*)malloc(sizeof(int));   //malloc函数返回类型是void*,需要强制类型转化一下
int* p=new int;

2. 指针并不是野指针,但是它指向NULL或者指向受系统保护的区域

比如以下两种情况:

int* p=0;
int* p=NULL;

建议和1一样,分配一块动态内存

另外注意的是,scanf忘记加&,也会因为这个原因报Segmentation fault

如:

int a=0;
scanf("%d",a);    //忘加&

3. 下标越界,访问某个数组超出其定义下标的值

比如:

int array[3]={0};   //只定义到3
cout<<array[4];     //但是尝试访问下标为4的地方

值得一提的是,现在部分编译器已经将其优化,进而允许用户进行这一危险行为而不会报错,在写代码的时候应该避免访问超出定义的下标

4.栈溢出

写递归的时候,递归次数太多

比如:

void operate(){
    if(true) operate();    //自己调用自己,无限调用
    else return;
}

6.除零错误(in Dev)

Dev独有,同本文第一条错误,分母为零等算式错误

Format

Input

Output

Samples



Limitation

1s, 1024KiB for each test case.