0

在一个互联网论坛上,我看到一个用户在谈论realloc和 POSIX。他引用规范说:

realloc()函数应解除分配所指向的旧对象,ptr并返回一个指向具有由 size 指定的大小的新对象的指针。

所述用户随后指出,该规范使用“ shall ”一词而不是“ must ”。他详细说明,由于这个原因,realloc不同平台的实现可能会有所不同,然后建议避免使用以避免realloc内存泄漏。

我不是英语母语,所以我可能错了,但我对“应该”的理解与上面所说的不同。就我(可能有缺陷的)理解而言,“应该”描述了一个命令;它介于“应该”和“”之间——所以它是如此强烈,以至于它几乎拒绝承认可能会发生相反的事情。每个人都知道这些行:

我是主你的神。在我之前,你不得有其他神。你不可为你雕刻任何雕像。不可妄称耶和华你神的名。记住安息日,保持它为圣日。孝敬你的父亲和你的母亲。不可杀人。不可奸淫。你不可偷窃。你不可作假见证陷害你的邻居。你不可贪图。

我理解这些是绝对的命令,不允许不服从;并且以同样的方式,我在 POSIX 规范和任何其他类似文本中解释了“应该”这个词。

我的理解正确吗?或者不是?

特别是 - “应该”这个词是否允许“ realloc ”实现不释放旧对象?

4

0 回答 0