查找() 上的 C++ 错误访问错误
c++ bad access error on find()
我在尝试查找以字符串形式给出的两个日期之间的天数时遇到错误的访问错误。我发现我的函数可以找到的最大天数是 1884,但我不知道为什么。错误的访问错误位于 a.find("/"( 函数调用中。
这是代码。任何帮助将不胜感激,谢谢。
int daysBetweenDates(string a, string b) {
if (a == b) {
return 0;
}
cout << a << endl;
int month = stoi(a.substr(0, a.find("/")));
a = a.substr(a.find("/")+1);
int day = stoi(a.substr(0, a.find("/")));
a = a.substr(a.find("/")+1);
int year = stoi(a);
int k = 0; // days in the month;
if (month == 2) {
k = year%4==0 ? 29 : 28;
}
else if ((month == 4) || (month == 6) || (month == 9) || (month == 11)) {
k = 30;
}
else {
k = 31;
}
day++;
if (day > k) {
month++;
day = 1;
}
if (month > 12) {
year++;
month = 1;
}
string new_a = to_string(month) + "/" + to_string(day) + "/" + to_string(year);
return 1 + daysBetweenDates(new_a, b);
}
递归调用最终会导致堆栈溢出。 更改代码以删除可能深度嵌套的调用。 例如,通过更改例程以使用循环。 C++编译器通常不执行尾递归优化。
相关文章:
- 尝试从C++访问 UWP 的电子邮件邮件类会导致"REGDB_E_CLASSNOTREG类未注册"错误
- C++ - 循环访问指针数组会导致错误
- 执行错误访问 遍历向量
- 错误访问 读入对象后
- 如何修复 CopyFile() 错误 5 - 访问被拒绝错误
- CreateFile 在尝试打开目录进行读取时始终返回错误 5(访问被拒绝)
- 范围检查检测到的检测代码和超出范围的错误访问
- 查找() 上的 C++ 错误访问错误
- 错误访问另一个插件中的类(错误:未定义的引用)
- C STD ::排序Intel编译器错误:访问违规
- libcurl、OSX、curl_multi_执行错误访问
- C++数组错误:访问冲突读取位置0xC0000005
- C++LinkedList错误:访问冲突错误
- 使用.open()成员函数C++的ifstream数组的错误访问代码
- C++ 段错误 访问对象指针向量的 std::vector.size()
- JNI 从 C 错误访问对象数组
- 带有内存错误访问的C++结构new
- XCode C++上的错误访问错误
- 错误访问冲突写入位置0x00229C20.尝试在控制台中输入字符串时
- MySQL 连接器/C++ 错误访问崩溃