在一个互联网论坛上,我看到一个用户talking about realloc
and POSIX。他引用the specification说:
realloc()
函数应释放ptr
所指向的旧对象,并返回指向具有size指定大小的新对象的指针。
然后,所述用户指出,规范使用单词“ 必须”而不是“ 必须”。他详细介绍了realloc
的实现可能会因不同平台而异,然后建议避免使用realloc
以避免内存泄漏。
我不是英语母语,所以我可能是错的,但是我对“ 必须”的理解与上面所说的不同。对于我(可能有缺陷的)理解,“ 应”描述了一种必要条件。它位于' should '和' will '之间-因此,它非常有必要,几乎拒绝承认可能会发生相反的情况。每个人都知道以下几行:
我是耶和华你的上帝。除了我以外,你没有别的神。你不可使你有任何刻板的印象。你不可徒劳地取主你神的名。记住安息日,保持它为圣日。尊敬您的父亲和母亲。不可杀人。你不可犯奸淫。你不可偷。你不可对你的邻居作虚假的见证。你不要贪图。
我理解这些是绝对必要的,不允许违抗;并且以同样的方式,我在POSIX规范和任何其他类似的文本中解释了“ 应”一词。
我的理解正确吗?还是不是?
特别是-“ 应”一词是否允许“ 重新分配”实现不取消分配旧对象?