当我编译并运行我的程序时,除了我收到“运行时检查失败 #2”错误之外,似乎一切都可以正常处理手头的任务。顺便说一句,这是我的硬件任务,这是我第一次尝试使用任何 cstring 函数,所以我确定这是我出错的地方。基本上我将 2 个字符串附加在一起,我几乎 100% 确定它与我的结果参数溢出有关。只是不知道如何解决它。
#include <iostream>
#include <cstring>
using namespace std;
void concat(const char a[ ], const char b[ ], char result[ ], int result_maxlength);
int main()
{
char a[] = "Woozle";
char b[] = "Heffalump";
char c[5];
char d[10];
char e[20];
concat(a, b, c, 5);
concat(a, b, d, 10);
concat(a, b, e, 20);
cout << c << "\n";
cout << d << "\n";
cout << e << "\n";
return 0;
}
void concat(const char a[ ], const char b[ ], char result[ ], int result_maxlength)
{
strncpy (result,a, result_maxlength);
strncat (result, b, result_maxlength);
result[result_maxlength-1] = '\0';
}