undefined-behavior

    1热度

    1回答

    可能重复: Why a = a is nil in Ruby? 在由加里·伯恩哈特交付的幽默lightning talk - Wat,下面的代码计算到零: a = a #=> nil 但其他什么比自赋值结果在NameError中 b = c #=> NameError: undefined local variable or method `c' for main:Object 有人请

    4热度

    2回答

    我到K & R读取和i的行为碰到这个例子有关的不确定性,而像a[i]=i++评估表达; 的C99规格书$ 6.5.2说 一个和下一个顺序点之间,对象所储存的值由表达式求值修改最多一次。此外,先验值只能读取以确定要存储的值。 上述来自K & R的例子在第一条语句中保持良好。请解释第二次失败的原因。 是否标准说约子表达式的评价中被卷入的序列点的情况下,为了什么。例如。 a[i++] || b[i++]

    5热度

    2回答

    尝试在MS Excel中粘贴=10**-2到单元格中。按Enter键后,它变成=0.1。我似乎找不到**的任何文档,但它似乎是一个非常奇怪的指数运算符,它不能在Excel公式中使用(例如,=A1**A2无效)。 如果这个算子不是一个指数运算符,它是什么? (N.B .:数学上,10 -2 = 0.01,而不是0.1)

    13热度

    2回答

    想象我有这个C函数(在头文件中的相应的原型) void clearstring(const char *data) { char *dst = (char *)data; *dst = 0; } 有没有在上面的代码中未定义行为,铸造const走,或者是它只是一个非常不好的编程习惯? 假设有没有const限定对象使用 char name[] = "pmg"; clears

    12热度

    3回答

    我刷新我的价值初始化与默认初始化的理解,和整个this传来: struct C { int x; int y; C() { } }; int main() { C c = C(); } 显然,这是UB因为 在C()的情况下,有一个构造函数能够对 初始化x和y成员,因此不会进行初始化。尝试将C()复制到c因此会导致未定义的行为。 我想我明白为什么,

    3热度

    3回答

    下具有不确定的结果,因为评价顺序是不确定的: std::string f() { std::cout << "f()"; return ""; } std::string g() { std::cout << "g()"; return ""; } int main() { std::cout << f() << g(); } /

    2热度

    3回答

    可能重复: How do we explain the result of the expression (++x)+(++x)+(++x)? Undefined Behavior and Sequence Points 我有问题,在不同方式的代码 U = C + C++; 会运行非标准类型和我自己的类型。 我举一个例子http://ideone.com/4S1uA其中我有不同的int值和我的

    5热度

    2回答

    为了阻止论点的an answer I gave recently评论的时候,我想了一些建设性的回答以下问题: 是一个参考的生命周期不同从它指的对象?参考只是其目标的别名吗? 参考文献能否在一个格式良好的程序中超越其目标而不会导致未定义的行为? 如果为原始对象分配的存储空间被重用,是否可以引用新对象? 下面的代码是否演示了上述几点而未调用未定义的行为? 实施例的代码由Ben Voigt和简化(上id

    0热度

    2回答

    Parser.h enum { PLUS, MINUS, DIVIDE, MULTIPLY, NUMBER, END } type; int token; /* parsing functions */ void parse_token (void); Parser.c 的错误 parser.c:14:6: warning: conflicting types for ‘parse_

    3热度

    3回答

    此代码是否定义了行为? char *str = NULL; printf("%s\n",str); 在C++(98/03和11)和C(99)标准的背景下。