gpt4 book ai didi

c++ - C++17 中 malloc 返回 "invalid pointer value"吗?

转载 作者:行者123 更新时间:2023-12-01 18:57:07 24 4
gpt4 key购买 nike

根据 C++17 [basic.compound]/3:

Every value of pointer type is one of the following:

  • a pointer to an object or function (the pointer is said to point to the object or function), or
  • a pointer past the end of an object (8.7), or
  • the null pointer value (7.11) for that type, or
  • an invalid pointer value.

malloc函数返回一个指针值。假设调用成功,因此返回值不为 null。 malloc的规范([c.malloc]) 没有声明它在返回的存储中创建任何对象,因此看起来“无效指针值”是最不无意义的类别。

最佳答案

这是有道理的。这是一个“无效的指针值”,因为它不指向对象。

请参阅该部分的后面内容,其中显示:

A pointer value becomes invalid when the storage it denotes reaches the end of its storage duration

这意味着不是指针的“值”使其无效,而是它没有指向有效的对象。

关于c++ - C++17 中 malloc 返回 "invalid pointer value"吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59054707/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com