почему не привело к ошибкам? c++
В одной из своих программ я не освободил память с помощью free выделенную под массив с помощью malloc, но это не привело к катострофическим результатам. Почему?
В одной из своих программ я не освободил память с помощью free выделенную под массив с помощью malloc, но это не привело к катострофическим результатам. Почему?
Потому что пока памяти хватает, это никого не колышит.
Не совсем понятно что вы ожидали?
В 32 битных системах malloc за раз может зарезервировать до 1GB памяти.. . в 64 намного больше.. .
Хотя опять таки если вы будете резервировать память маленькими блоками то вы сможете пойти больше чем 1GB, пока операционная система не скажет "ХВАТИТ! ".
А хвататит он скажет ошибкой в функции malloc и возвратом из нее NULL.
Free же нужно использовать для динамического освобождения памяти. После завершения или креша программы, вся занятая ей память освобождается автоматически.. .
Если хочешь, что-бы были ошибки. Попробуй выделить при помощи new, а удалить при помощи free.