|
|
1
12
第4.1节看起来像候选人( 强调我的
我相信只要在规范中搜索“uninitial”就可以找到更多的候选人。 |
|
|
2
6
我发现这个问题的答案是
C++ draft standard
以及:
和脚注
虽然看起来确实有一些争议 whether a null pointer is singular or not 看起来这个词 需要以更一般的方式正确定义。 目的 似乎在缺陷报告中总结得很好 278. What does iterator validity mean? 在“基本原理”一节中:
所以
以及存在
未初始化
更新
另一种常识方法是注意到标准节草案
如果我们去部门
但是
|
|
|
3
5
该标准界定了某些行为。问题是,在这种情况下,它是否规定了任何行为?如果它没有,那么无论它是否明确表示,行为都是不确定的。 事实上,标准中保留了一些东西未定义的规范,主要是作为标准编写者的调试辅助工具,其思想是,如果某个地方的要求与另一个地方未定义行为的明确声明相冲突,则会产生矛盾:这是证明标准缺陷的一种方法。如果没有对未定义行为的明确陈述,另一个规定行为的条款将是规范的,不受质疑的。 |
|
|
4
3
我不会假装对此了解很多,但有些编译器会将指针初始化为NULL,并取消对指向NULL的指针的引用。
第8.3.2节中的注释[dcl.ref]
ISO/IEC 1488∶1998(E),ISOC++标准,在第8 3.2节[DCL,REF] 我想我应该写这篇评论来代替,我不太确定。 |
|
|
5
3
要解引用指针,需要读取指针变量(而不是它指向的对象)。读取未初始化的变量是未定义的行为。
|
|
|
6
3
评价 未初始化的指针导致未定义的行为。由于取消引用指针首先需要对其求值,这意味着取消引用也会导致未定义的行为。
在C++ 14中,它完全被[dCL init ] / 12覆盖:
在C++ 11中,[Vang.LVAL/2 ]将此值覆盖在LValt到RValf转换过程中(即从
为C++ 14删除了带螺栓的部分,并用[dCL init/12 ]中的额外文本替换。 |
|
|
7
1
即使在内存中正常存储的某些东西对于任何陷阱位或陷阱表示没有“空间”,实现也不需要像静态持续时间变量那样存储自动变量,除非用户代码可能在某个地方保存指向它们的指针。此行为对于整数类型最为可见。在典型的32位系统上,给定代码:
|
|
AstralHex · 矩阵乘法代码工作不正常 1 年前 |
|
|
Fishie · 作为类成员的智能指针是否仍然自动释放?[关闭] 1 年前 |
|
|
Die4Toast · 递归调用成员箭头运算符-> 1 年前 |
|
|
Anka Hanım · 关于结构和动态数组地址的问题 1 年前 |