Для тот, чтоб задать свой вопрос, написал тривиальную структуру
struct Test {
const static size_t sz = sizeof(system(""));
char s[sz]; // первое системное слово
char ss; // второе системное слово
Test() : ss('?')
{
for (size_t i = 0; i < sz - 1; ++i)
s[i] = 'a' + 1;
s[sz] = sz + '0'; //инициализирую второе системное слово
}
};
В принципе в структуре я инициализирую символ с помощью выхода за пределы массива.
Теперь вопрос: Является ли это UB конкретно для данного определения? И если у меня символ ss принимает то значение, что я присвоил s[sz], то на других системах может быть другой принцип выравниваний полей?
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости