问题描述
这是我的第一篇帖子,如果我在提问中缺少任何关键细节,我们深表歉意。
我有一种方法试图使用签名 void add (short *acc,char mode)
来添加两个短值,并检测是否有溢出并最终添加这些值。
我不知道我在做什么错,但是当我设置 *acc = acc + acc2(second value)
时,程序崩溃了。老实说,我无法弄清楚如何使用签名,而不会导致程序崩溃。
我目前使用的方法是更改签名并使之返回,而不是使用在功能方面一直很好的指针:
short add (short acc,char mode){
short acc2 = get_operand(mode);
short acc1 = acc;
if (acc >= 0) {
if (acc2 > SHRT_MAX - acc) {
printf("Positive Overflow detected");
}
//printf("%d",acc + acc2);
return acc + acc2;
//*acc = acc + acc2;
} else {
if (acc2 < 0 && acc + acc2 >= 0) {
/* handle negative overflow */
printf("Negative Overflow detected");
}
//printf("%d",acc + acc2);
return acc + acc2;
//*acc = acc + acc2;
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)