Это безопасно, так сказать: вы не подвергаетесь никакому неопределенному поведению.Но вы теряете память, если вы не сохранили адрес, заданный первым malloc()
, как это должно быть free()
d в какой-то момент позже.
Не выполнять free()
не опасно, но вы не можете восстановиться из этого состояния, поскольку вы потеряли ссылку на память, в которой находился этот фрагмент памяти, поэтому вы не можете вернуть его позже (это требуется free()
)
Если вы не можете вернуть выделенную вам память, и ваша программа ведет себя подобным образом, вы, наконец, можете съесть всю память, доступную вашему процессу, и это может повлиять на всю вашу систему.