Итак, мой вопрос: где на самом деле хранятся эти данные структуры и, если они хранятся в куче, как это работает?
Это кажется для работы, доступ к недопустимой памяти равен неопределенное поведение (UB) . Не делай этого.
Чтобы уточнить, как вы упоминаете, вы выделили память только размером указателя, однако вы используете этот указатель для доступа к памяти за этой границей. Расположение памяти вне выделенного блока не выделено вашей программе, поэтому память недопустима в контексте вашей программы, и попытка доступа к памяти - UB.
Исходя из индивидуального сценария, это может привести к
- кажется, что работает
- перезаписать другую область памяти
- производит ошибку сегментации
- печать государственного гимна вашей страны
- заказ пиццы и пони с помощью вашей кредитной карты для всей команды
любой или все, без определенного порядка.