C / C ++程序在编译和运行期间不断崩溃

时间:2016-08-09 15:45:38

标签: c windows

我是C编程语言的初学者 我想知道我的IDE存在问题,或者我无法理解。 问题是当写一些代码并编译它们运行良好但突然停止工作。这适用于每个程序和每个IDE,甚至在我的两台计算机上进行了测试,但两者都遇到了同样的问题。

例如最简单的代码崩溃,例如:

#include <stdio.h>
#include <conio.h>

int main(){

    int num1, num2, result;
    result = num1 + num2;

    printf("Enter Value 1:\n");
    scanf("%d",num1);
    printf("\nEnter Value 2:");
    scanf("%d",num2);

    printf("The result of %d + %d is %d",num1,num2,result);


    getch();
    return 0;


}

当我在CodeBlocks或DevCPP上运行它或用MinGW或VC ++编译器编译它时,它会在scanf中输入数据到程序后崩溃。顺便说一句,我的编译器和IDE安装和配置正确,没有任何问题。但IDK所有已编译的程序都在崩溃!即使是一个简单的HELLO WORLD prorgam!请帮我。 我的第一台PC: 英特尔奔腾D 3.4 GhZ 4GB RAM DDR3 Windows 8.1 Pro x64

我的第二台电脑: Intel Atom 1.4 GhZ 2GB RAM Windows 8.1 Pro x86

我关闭了我的AV,以确保它不是来自AV的问题,但同样的问题。崩溃。

CodeBlocks IDE

DevCPP IDE

错误信息:   问题事件名称:APPCRASH   应用程序名称:Arithmetic Operations.exe   应用版本:0.0.0.0   应用程序时间戳:57a9fa0c   故障模块名称:msvcrt.dll   故障模块版本:7.0.9600.16384   故障模块时间戳:5215f944   例外代码:c0000005   异常偏移:000000000001dd5c   操作系统版本:6.3.9600.2.0.0.256.48   区域设置ID:1065   附加信息1:3d05   附加信息2:3d052cae4082fb501044f19c5df730a9   附加信息3:4191   附加信息4:41915c3946c3709cfe888641ded802fc

请帮帮我!

3 个答案:

答案 0 :(得分:1)

  1. 您需要将指针传递给scanf中的整数:
  2. scanf("%d", &num1);

    1. 收到第二个数量时,您需要跳过隐式换行符。一个简单的黑客就是在第二个scanf字符串中添加一个空格:
    2. scanf(" %d", &num2);

      1. 您的程序行为未定义,因为您在计算num1时过早地读取num2result的未初始化值。result = num1 + num2;。将num1移至num2并计算=之后。

答案 1 :(得分:1)

在c语言scanf方法中使用&符号

printf("Enter Value 1:\n");
scanf("%d",&num1);
printf("\nEnter Value 2:");
scanf("%d",&num2);

答案 2 :(得分:0)

编辑:我很笨,我正在查看格式字符串的参数,但是你应该将整数作为指针传递给scanf。

此外,您甚至在设置这些值之前将结果设置为num1 + num2。