Стандарт-§6.7.2.1.18-говорит, чтоВозможно ли изменение смещения элемента гибкой матрицы?
Однако, когда. (или ->) имеет левый операнд, который является (указателем на) структуру с гибким членом массива, а правый операнд - этим членом, он ведет себя так, как если бы этот элемент был заменен самым длинным массивом (с тем же типом элемента), который не сделает структуру больше, чем объект, к которому обращаются; смещение массива должно оставаться равным элементу гибкого массива, , даже если это будет отличаться от размера заменяющего массива.
Проблема в том, что я не понимаю, что означает стандарт в последнем утверждении. Учитывая, что мы обычно выделяем достаточно памяти, используя malloc() - для элемента гибкого массива вместе с, который из других членов, как можно иметь несходные смещения?
Это из-за структуры прокладки? – user227248
@ пользователь227248 извините, что? –
Я имею в виду, что данные должны иметь смещение памяти, которое несколько кратно слову. – user227248