Consider
int main()
{
auto a = new int[0];
delete[] a; // So there's no memory leak
}
在复制初始化和删除之间,是否允许读取指针a + 1
?
此外,该语言是否允许编译器设置a
to nullptr
?
根据最近 CWG 反射器讨论的结果社论第3178期 https://github.com/cplusplus/draft/issues/3178, new int[0]
产生目前所谓的“末尾”指针值 http://eel.is/c++draft/basic.compound#3.2.
它遵循a
不能为空,并且a + 1
未定义为[expr.add]/4 http://wg21.link/expr.add#4.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)