polak228, для того чтобы выделять память, внезапно да? Выделение памяти выдает вам некий участок, и в какой то мере гарантирует что никто другой туда не полезет и жта память именно вашего процесса.
Но в рамках процесса С/С++ позволяет стрелять себе в ногу - обращаться за пределы выделенного участка.
При записи в не принадлежащую вам область можете получить эксепшн (а можете не получить). А если область дальше выделеной принадлежит вам - то получите смешивание данных - и тут вообще ничего это дело не отловит
polak228, Чтобы зарезервировать память для программы. До освобождения этого участка памяти система не выделит его другой программе.
При обращении за пределы выделенной памяти может быть что угодно, от отсутствия реакции до вылета программы с исключением.
Учитывайте, что память выделяется блоками, в не по одному байту, и, скорее всего, ваша программа не выходит за пределы реально выделенной памяти.
Вы лезете не в свою память. Программа может упасть, вы можете перетереть значение каких-то других ваших переменных.
В вашем случае - вам повезло. Видимо, на вашем конкретном компьютере ваша конкретная операционная система в этот конкретный момент времени выдает вам 1 байт, который лежит внутри выделенной вашему приложению странице памяти и там дальше нет каких-то ваших переменных. Так не обязано происходить. Вы запустите вашу программу в другое время, добавите туда еще переменных или выделения памяти или скопируете чуть более длинную строку, и программа может запросто упасть.