當我編譯並運行我的程序時,似乎一切正常,除了出現「運行時檢查失敗#2」錯誤,手頭的任務都正常。這是我的主要任務,這是我第一次嘗試使用任何cstring函數,所以我確信這是我出錯的地方。基本上,我將兩個字符串附加在一起,我幾乎100%確定它與我的結果參數超出範圍有關。只是不知道如何解決它。strncpy運行時檢查失敗#2錯誤C++
#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';
}
這和你以前的問題有何不同? http://stackoverflow.com/questions/12217528/strncat-strncpy-help-c?rq=1 –