Ich habe mir in den Schulferien C selbst beigebracht und kürzlich versucht, ein einfaches Taschenrechnerprogramm zu schreiben, das zwei Ganzzahlen aufnehmen und eine von vier Operationen ausführen soll (+ - * /) , aber immer, wenn die erste Variable zugewiesen ist, bekomme ich eine Segmentierungsfehler/Kern-Dump-Fehlermeldung. Ich weiß, dass dies mit der Speicherzuweisung zu tun hat, und ich habe versucht, Zeiger und malloc zu verwenden, obwohl ich vermute, dass ich es falsch mache.Segmentierungsfehler in einem einfachen Programm erhalten
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int calculate(int numberOne, int numberTwo, int operator);
int main(){
//Declaring Variables
int numberOne, numberTwo, total, operator;
int *one, *two, *tot, *op;
//Assigning Variables
printf("Integer 1: ");
scanf("%d", numberOne);
printf("\nOperator 1[+] 2[-] 3[*] 4[/] : ");
scanf("%d", operator);
printf("Integer 2: ");
scanf("\n%d", numberTwo);
//Output Calculatoin Through Function
printf("Calculation Complete: %d is the answer", calculate(numberOne, numberTwo, operator));
}
int calculate(int numberOne, int numberTwo, int operator) {
int total = 0;
do{
switch(operator){
case 1:
total = numberOne + numberTwo;
break;
case 2:
total = numberOne - numberTwo;
break;
case 3:
total = numberOne*numberTwo;
break;
case 4:
total = numberOne/numberTwo;
break;
default:
printf("Error, Invalid Operator, Please Enter A New One: ");
scanf("%d", operator);
}
}while(total ==0);
return total;
}
Cheers Leute, es ist mir völlig entfallen, dass ich die Adresse und nicht den Wert übergeben musste –
Wie immer, bitte ** Compiler Warnungen ** aktivieren, die (MSVC) * gegeben hätte "C4700 Warnung: nicht initialisierte lokale Variable" numberOne "benutzt" *. –