我正在研究 malloc 和命令行界面,我必须在其中创建和简单的计算器。我已经成功运行了程序,但我想从主程序打印我的结果,而不是从函数中,我无法从主程序运行它。每次我运行它都会显示垃圾值。什么地方出了错?
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<stdint.h>
typedef struct {
int num1;
int num2;
uint8_t *ope;
int result;
} Calc;
void SI( Calc c) {
if(strcmp(c.ope,"add")==0)
{
printf(" result is : %d\n :",c.result = (c.num1 + c.num2 ));
}
else if(strcmp(c.ope,"sub")==0)
{
printf(" result is :%d\n :",c.result = (c.num1 - c.num2 ));
}
}
int main(int argc,char *argv[]) {
Calc *pCalc = (pCalc *) malloc(sizeof(Calc));
pCalc ->ope = (argv[1]);
pCalc ->num1 = atoi (argv[2]);
pCalc ->num2 = atoi (argv[3]);
SI(*pCalc );
printf("result is: %d\n", pCalc ->result); // I want to print result here
free(pCalc );
return 0;
}