На интернет-форуме я вижу пользователя , говорящего о realloc
и POSIX . Он цитирует спецификацию , говоря:
Функция realloc()
освобождает старый объект, на который указывает ptr
, и возвращает указатель на новый объект, размер которого указан в размере.
Указанный пользователь затем указывает, что в спецификации используется слово ' must ' вместо ' must '. Он уточняет, что из-за этого реализация realloc
может отличаться на разных платформах, а затем предлагает избегать использования realloc
во избежание утечек памяти.
Я не являюсь родным для английского языка, поэтому я могу ошибаться, но мое понимание ' ' отличается от того, что было сказано выше. По моему (возможно, ошибочному) пониманию « должен » описывает императив; оно находится где-то между ', следует ' и ' будет ' - так что это настолько сильный императив, что он почти отказывается признать, что может произойти что-то противоположное. Все знают эти строки:
Я Господь, Бог твой. У тебя не будет других богов до меня. Ты не должен делать тебе никакого изображения. Ты не будешь принимать имя Господа, Бога твоего, напрасно. Помни день субботний, чтобы святить его; Почитай отца твоего и мать твою. Не убивай. Не прелюбодействуй. Не укради. Не произноси ложного свидетельства на ближнего твоего. Не желай.
Я понимаю, что это абсолютные императивы, которые не допускают непослушания; и таким же образом я интерпретировал слово «» в спецификации POSIX и любом другом подобном тексте.
Было ли мое понимание правильным? Или это было не так?
В частности - позволяет ли слово ' ' реализациям realloc 'не освобождать старый объект?