Если malloc()
возвращает указатель на один блок памяти, как его можно использовать для последовательного хранения нескольких значений и предоставления доступа к каждому из них с помощью оператора индекса, действующего как указатель на массив?
Если бы я попытался изменить «второй элемент» целого числа, подписав его адрес, это вызвало бы неопределенное поведение. Поскольку malloc()
возвращает указатель на один блок памяти, не должен ли указатель, который он возвращает, относиться ко всему блоку, и, следовательно, при его подписке он должен получить доступ к значению мусора рядом с ним в памяти?
Кроме того, выделенная память также может использоваться для хранения одного значения, но только до размера типа, к которому приведен указатель, а не до размера выделенного блока памяти.
Это все что-то делать с типом, к которому приведен указатель после возврата? Может ли кто-нибудь указать мне правильное направление?