Возьмите следующую программу:
#include <iostream>
#include <cstring>
using namespace std;
int main()
{
char a[8] = "Hello, ";
char b[7] = "world!";
strcat(a, b);
cout << a;
return 0;
}
Обратите внимание, что a
и b
имеют тот же размер, что и назначенные им строки.
В документации указано, что для работы strcat(a, b)
размер a
должен быть большим. достаточно, чтобы содержать конкатенированную результирующую строку.
Тем не менее, cout << a
отображает "Hello, world!"
. Я вхожу в неопределенное поведение?