c++函数中出现异常
exception occured in C++ function
当给定数字"n"及其基数"D"时,使用下面的函数计算其在基数D下的反转数,然后转换为十进制并返回。
问题是,方法1可以成功地工作,而方法2总是出现异常。有人能告诉我方法二有什么问题吗?非常感谢。
int getrevn(int n, int D)
{
//-------method 1-------------------------//
int revn = 0;
while (n)
{
revn = revn * D + n % D;
n /= D;
}
return revn;
//------method 2-------------------------//
string s;
while (n)
{
s = char(n % D + '0') + s;
n /= D;
}
int rev = 0;
for (unsigned int i = s.size() - 1; i >= 0; i--)
rev = rev * D + s[i] - '0';
return rev;
}
在最后一个循环中,您将i
声明为unsigned。因此,i
将始终是>= 0
,并且循环不会终止。
相反,i
将绕到一个非常大的数字,这将导致崩溃。只需将i
更改为signed
相关文章:
- 从构造函数抛出异常时如何克服内存泄漏
- 创建具有 new in 函数和"this is nullptr"异常的对象
- 函数如何通知用户它基于函数原型抛出异常?
- C++/CLI System.AccessViolation在托管类中调用非托管函数时出现异常
- 如何编写带有异常的构造函数
- 有没有办法捕获 STL 函数未被赋予正确参数的异常?
- 在缺少函数重载时抛出异常,并带有 std::variant 而不是编译时错误
- 从函数(不抛出函数)返回异常以进行消息格式化?
- 从 C++ 中异常的构造函数引发异常
- 赋予全局变量而不是局部变量优先级的函数 - (异常行为)
- 是否允许分配器构造和销毁成员函数从内部逻辑引发异常?
- 调用参数不是原子参数的函数是此代码引发异常的原因吗?
- (此函数用于计算 SMA).在 FA.exe 中0x00509159引发异常: 0xC0000005:访问冲突读取位置0
- 我正在尝试创建一个使用 c++ 中的参数包构造函数的异常类
- C++中函数出现Bad_alloc异常
- 为什么 c++ 使用 throw() 关键字来指示函数不会引发任何异常
- 在析构函数内部处理异常(但不抛出)
- 在OpenCV_core310.dll中使用findContours函数时,OpenCV引发未处理的异常
- 为sLinkedList编写插入函数时引发异常
- c++运算符=工作异常(函数内部输出正常,但返回后错误)