プログラムをコンパイルして実行すると、「ランタイムチェックの失敗#2」エラーが発生することを除いて、手元のタスクですべてが正常に機能しているように見えます。ちなみに、これは私のhw割り当てであり、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';
}