Сначала обратите внимание, что ваш memset
будет усекать 0x123
до одного байта и записывать это, не записывая четырехбайтовый шаблон.
Тогда не делайте этого, просто используйте контейнер: std::vector<int> vec(100, whatever_value_you_want);
Однако, чтобы ответить на вопрос, может показаться, что он работает специально для типов POD, если компилятор не использует выделенное пространство для чего-либо. Конечно, если кто-нибудь позвонит resize
, insert
, push_back
и т. Д., Это сместит все, что вы уже записали в память, и размер вектора также будет неправильным. Просто нет причин писать такой код.