Erstmal ein freundliches hallo.
Nach einer etwas längeren Programmierpause hab ich mich nun wieder mal ein bisschen ans Programmieren gesetzt und wollte als Einstand mal ein simples Programm schreiben.
Jedoch stoße ich auf folgendes Problem:
Ich will der Funktion 3 Parameter übergebn. 2 Int-Werte und einen Char die sie mir dann verarbeiten soll (Int werte je nachdem welcher Char geschickt wurde Addieren, Subtrahieren, Multiplizieren oder Dividieren) und das Ergebnis dann als Char Array zurückgeben.
Jedoch kommt es dabei immer zu einem Segmentation Fault, ergo greift das Programm auf irgendeinen Speicher zu auf den es nicht zugreifen darf (soweit ich es richtig verstanden habe).
Nun die Frage an euch ... wie kann ich es zum Laufen bringen ohne einen SegFault zu provozieren.
Bin für jeden Anhaltspunkt dankbar.
Hier noch die Betreffende Funktion:
PS: Auf die Methode dass es mir das Char Array zurückgeben muss bestehe ich nicht, wäre auch zufrieden wenn ich nur das Ergebniss der Operation als Int zurückbekomme.
Danke im Vorraus
Nach einer etwas längeren Programmierpause hab ich mich nun wieder mal ein bisschen ans Programmieren gesetzt und wollte als Einstand mal ein simples Programm schreiben.
Jedoch stoße ich auf folgendes Problem:
Ich will der Funktion 3 Parameter übergebn. 2 Int-Werte und einen Char die sie mir dann verarbeiten soll (Int werte je nachdem welcher Char geschickt wurde Addieren, Subtrahieren, Multiplizieren oder Dividieren) und das Ergebnis dann als Char Array zurückgeben.
Jedoch kommt es dabei immer zu einem Segmentation Fault, ergo greift das Programm auf irgendeinen Speicher zu auf den es nicht zugreifen darf (soweit ich es richtig verstanden habe).
Nun die Frage an euch ... wie kann ich es zum Laufen bringen ohne einen SegFault zu provozieren.
Bin für jeden Anhaltspunkt dankbar.
Hier noch die Betreffende Funktion:
Code:
char Ausg(int x, int y, char z){
switch(z){
case '+':
return("%d + %d = %d",x ,y, x+y);
break;
case '-':
return("%d - %d = %d",x ,y, x-y);
break;
case '*':
return("%d * %d = %d",x ,y, x*y);
break;
case '/':
return("%d / %d = %d",x ,y, x/y);
break;
default:
printf("Default");
return(0);
}
}
PS: Auf die Methode dass es mir das Char Array zurückgeben muss bestehe ich nicht, wäre auch zufrieden wenn ich nur das Ergebniss der Operation als Int zurückbekomme.
Danke im Vorraus
