2016-08-09 39 views
0

Ich bin ein sehr sehr Anfänger C Programmiersprache Ich frage mich, dass es ein Problem mit meiner IDE oder ich kann nicht was. Das Problem ist, wenn ein paar Codes schreiben und kompilieren sie läuft gut, aber plötzlich funktioniert nicht mehr. Dies ist für jedes Programm und jede IDE und sogar getestet auf zwei meiner Computer, aber beide haben das gleiche Problem.C/C++ Programme stürzt während Kompilieren und Run

Zum Beispiel können die einfachsten Code abstürzt, wie:

#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; 


} 

Und wenn ich laufe es auf Codeblocks oder DevCPP oder kompilieren Sie es mit MinGW oder VC++ es Compiler stürzt, nachdem sie die Daten an scanf dem Programm eingeben. Übrigens, mein Compiler und meine IDE werden korrekt und ohne Probleme installiert und konfiguriert. Aber IDK alle meine kompilierten Programme stürzt ab! Sogar ein einfaches HALLO WORLD-Projekt! Bitte hilf mir. Mein erster PC: INTEL Pentium D 3,4 GHz 4 GB RAM DDR3 Windows-8.1 Pro x64

Mein zweiter PC: Intel Atom 1,4 GHz 2GB RAM Windows-8.1 Pro x86

Und ich ausgeschaltet mein AV um sicherzustellen, dass es nicht das Problem von AV ist, aber das gleiche Problem wieder. Absturz.

CodeBlocks IDE

DevCPP IDE

Fehlerinformationen: Problemereignisname: APPCRASH Anwendungsname: Arithmetic Operations.exe Anwendungsversion: 0.0.0.0 Anwendungszeitstempel: 57a9fa0c Fehlermodulname: msvcrt. dll Fehlermodul Version: 7.0.9600.16384 Fehlermodul Zeitstempel: 5215f944 Ausnahmecode: c0000005 Ausnahme Offset: 000000000001dd5c OS Version: 6.3.9600.2.0.0.256.48 ID Locale: 1065 Weitere Informationen 1: 3D05 Weitere Informationen 2: 3d052cae4082fb501044f19c5df730a9 Zusätzliche Informationen 3: 4191 Weitere Informationen 4: 41915c3946c3709cfe888641ded802fc

Bitte helfen Sie mir !

+4

Argumente für 'Scanf()' muss ein Zeiger sein: 'scanf ("% d", &num1); scanf ("% d", &num2);' – Sergio

+2

'result = NUM1 + num2;' Bewegung zu, nachdem Geben Sie 'num1' und' num2' ein – BLUEPIXY

+2

'result = num1 + num2;' ist ein undefiniertes Verhalten, da Sie die Variablen nie initialisiert haben – NathanOliver

Antwort

0

Edit: Ich bin dumm, ich habe das Argument für die Format-Zeichenfolge gesucht, sollten Sie jedoch die ganzen Zahlen in scanf als Zeiger übergeben.

Zusätzlich setzen Sie das Ergebnis auf num1 + num2, bevor Sie diese Werte festlegen.

+0

Sein Format Saiten sind * in der Tat * const char * – Ascam

1
  1. Sie benötigen Zeiger auf den ganzen Zahlen in scanf passieren:

scanf("%d", &num1);

  1. Sie müssen über die implizite Zeilenende-Marke überspringen, wenn Empfang die zweite Menge.Ein einfacher Hack ist ein Platz in der zweiten scanf Zeichenfolge zu setzen:

scanf(" %d", &num2);

  1. Ihr Programmverhalten ist undefined wie Sie uninitialised Werte von num1 lesen und num2 bei der Berechnung, zu früh, result. Verschieben Sie result = num1 + num2; nach num1 und num2 wurden berechnet.
0
printf("Enter Value 1:\n"); 
scanf("%d",&num1); 
printf("\nEnter Value 2:"); 
scanf("%d",&num2); 
+0

Während dieser Code die Frage beantworten kann, einen zusätzlichen Kontext betreffs * wie * und/oder * warum * zur Verfügung zu stellen, löst es das Problem würde den langfristigen Wert der Antwort verbessern. - [Aus Review] (http://stackoverflow.com/review/low-quality-posts/13280595) –

Verwandte Themen