ЮБ
Юлия Балашова

Представление массивов в памяти и их заполнение

Везде могу ошибиться, т.к. не далек от дна :3 Но вот мои мысли:
Массив хранится с "последовательными" адресами элементов, в том смысле, что для 4 байтовой переменной <адрес начала массива>+4 даст адрес 2-го элемента массива.
Это создает предположение, что массив хранится в виде блока памяти, согласно моему представлению памяти в виде прямоугольников.
Вероятно копировать в него следует блоками памяти(вывод на основе известности предпочтительности считывания из файла на HD блоками памяти, а не посимвольно), например хочу добавить в строку с i-го символа еще n, не обращаясь к строке посимвольно.
Если это реально, выигрывает ли такой вариант в плане производительности(думаю да)?

HD в смысле жесткого диска, в смысле ВЗУ

ВР
Вероника Рудая

С массивами всё просто.
Они действительно располагаются в памяти так.
Только лучше представлять её себе не в виде «прямоугольников» (прямоугольник — это скорее что-то двухмерное) , а в виде «ленты» (типа как измерительная рулетка или у швеи сантиметр 😉.

Но со строками такой фокус не очень правильный!
Может быть в Turbo Pascal такой фокус ещё и пройдёт, а в Delphi строковая переменная не ограничивается 256 байтами.
Там организация немного сложнее. И при конкартенации строк происходит перезапись строковой переменной в другой свободный и подходящий по размеру блок памяти.

Похожие вопросы
С++ как сделать без массивов
Создание массива на С/С++
Заполнение массива на паскале из текстового файла
Что не так? С++ Двухмерные массивы
В PascalABC составить программу заполнения массива
В массиве из 10 элементов заполненном путём ввода данных найти произвидение максимального и минимального элементов!
Написать массив 8х8 заполненный 0 и 1 так, чтобы по вертикали и горизонтали сумма была равна 1, а всего в массиве 8.
С++: почему при заполнении массива при использовании unsigned выводятся отрицательные?
Представление символьной информации в памяти ЭВМ
Программисты помогите. Программа работает при заполнении массива рандомом, а при вводе с клавиатуры нет. C++