undefined-behavior相关内容

是的printf的输出(QUOT;%D",C ++,C);也未定义?

我最近碰到一个帖子什么是COUT正确答案<< C ++<< Ç;?,想知道是否输出 INT C = 0; 的printf(“%D”,C ++,C); 也是不确定的? 我已经研究在得到一个分号修复后和preFIX运营商增值后才讲座。所以根据我来说,输出 0 是正确的! 解决方案 我已经研究了讲座。修复后和preFIX运营商增值只得到一个分号了。 发送您 ..
发布时间:2016-08-17 21:43:12 C/C++

如何undefined是不确定的行为?

我不知道我的非常的理解到未定义行为可能危及程序的程度。 让我们说我有这个code: 的#include<&stdio.h中GT;诠释的main() { INT V = 0; scanf函数(“%d个”,&安培; 5); 如果(ⅴ!= 0) { INT * P; * P = V; //哎呀 } 返回伏; } ..
发布时间:2016-08-17 21:38:26 C/C++

如何实现在标准C的memmove不需要复制?

从我的系统上的手册页: 无效的memmove *(无效* DST,常量无效* SRC,为size_t的len); 描述结果 该memmove与()函数将len个自的字符串src字节串DST。结果 两个字符串可以重叠;副本总是以非破坏性的结果,完成 方式。 从C99标准: 6.5.8.5当两个指针进行比较,则结果取决于 在地址相对位置 物体的空间指向。如果 两个指 ..
发布时间:2016-08-17 21:35:58 C/C++

难道"未定义行为"真正使* *事情要发生?

编辑:这个问题不好旨在为有关的不确定的行为(德)值得讨论的论坛,但是这是那种什么成了。在任何情况下,这个线程关于一个假设C编译器使用没有未定义的行为可能是额外的利息那些谁认为这是一个重要的话题。 的“未定义行为”的经典例子杜撰的,当然,“鼻魔”—物理不可能的,无论什么样的C和C ++标准允许。 由于C和C ++社区往往把这样一个注重未定义行为未predictability和观念,编 ..
发布时间:2016-08-17 21:25:43 C/C++开发

我们可以改变通过指针常量的值?

可能重复:结果 常量和指针用C 的#include<&stdio.h中GT; 诠释的main() { const int的一个= 12; INT * P; P =&放大器;一个; * p = 70; } 将它的工作? 解决方案 这是“未定义的行为”,这意味着基于您不能当您尝试这个predict会发生什么标准。根据特定的计算机,编译器和程序状态的不同 ..
发布时间:2016-08-17 21:17:55 C/C++

未初始化的局部变量最快的随机数发生器?

我知道未初始化的局部变量是未定义的行为( UB 的),也值可能有陷阱重新presentations这可能会影响进一步的操作,但有时我想使用随机数仅用于视觉重新presentation和在程序的其他部分将不进一步使用它们,例如,设置一些与随机颜色的视觉效果,例如: 无效updateEffect(){ 的for(int i = 0; I< 1000;我++){ INT ..
发布时间:2016-08-17 20:50:53 C/C++开发

是"结构黑客"技术上未定义的行为?

我要问的是著名的“struct的最后一个成员具有可变长度”的把戏。它是这样的: 结构T { INT LEN; 个char [1]; };结构T * p =的malloc(sizeof的(结构T)+ 100); P->的len = 100; 的strcpy(对GT; S,“世界你好”); 的由于该结构在内存布局方式,我们能够覆盖在结构上比必要块较大和治疗的最后一个成员,就好 ..
发布时间:2016-08-17 20:30:11 C/C++

(为什么)使用C中的未初始化的变量未定义的行为?

如果我有: 无符号整数X; 点¯x - = X; 很显然, X 的应的是这个前pression后为零,但我到处看看,他们说的行为的这个code是不确定的,而不仅仅是值 X (直到减法之前)。 两个问题: 是的行为的这个code确实未定义的?结果 (例如可能会在code崩溃[或更糟]一个兼容的系统上?) 如果是这样, 为什么的并Ç说,的行为的是不确定的,当它是非常清楚, X 这里 ..
发布时间:2016-08-17 20:25:04 C/C++

未定义的,不确定的,并且实现定义的行为

什么是C和C ++不确定的,不确定的,和实现定义的行为之间的区别? 解决方案 未定义行为的是C和C ++语言的那些方面,可奇怪的程序员1从其他语言(其它语言试图更好地隐藏)。基本上,它是可以编写不以predictable行为方式,即使在节目许多C ++编译器不会报告任何错误的C ++程序! 让我们来看看一个典型的例子: 的#include<&iostream的GT;诠释的main ..
发布时间:2016-08-17 20:19:54 C/C++开发

交换价值与XOR

什么是这两个宏之间的区别? 的#define交换(A,B)(((一)^(B))及及((A)^ =(B)^ =(A)^ = (二))) 或者的#define交换(A,B)(((一)^(B))及及((B)^ =(A)^ =(B),(一个)^ =(b))) 我看到了第二个宏 rel=\"nofollow\">但不明白为什么它未写入像第一个?是否有特殊原因,我错过了? 解决方案 首先会调用的 ..

数组指针运算 - 法律和未定义行为

我问自己,如果这些线code的可以在C和用C产生不确定的行为++。 我试着回答每一个点读什么标准说有关数组下标(C 6.5.6 - 8)。我没有贴全款,因为它是pretty长。 此外,如果前pression P 指向最后一个 数组对象的元素,前pression (P)+1 点中的一个过去的最后一个元素 数组对象,如果前pression 问:点中的一个过去的数组对象的最后一个元素, 恩 ..
发布时间:2016-06-02 22:50:37 C/C++开发

是unsigned char型A [4] [5];一个[1] [7];未定义行为?

一个从C标准未定义行为的例子中读取(J.2): - 一个数组下标超出范围,即使对象是与明显访问 定标(如在左值前pression一个[1] [7]指定的声明INT 一个[4] [5])(6.5.6) 如果该声明从改变int类型的[4] [5] 到 unsigned char型A [4] [5] ,并访问 A [1] [7] 仍然导致未定义的行为?我的看法是,它没有,但我从其他人谁不 ..
发布时间:2016-06-01 19:39:35 其他开发

C / C ++:这是不确定的行为? (二维数组)

它是未定义的行为,如果我经过一个二维数组的按以下方式?元素 INT v [5] [5],I;对于(I = 0; I&小于5 * 5 ++ⅰ){ v [我] =我; } 话又说回来,它甚至不能编译? (我不能尝试,现在,我不在家)。如果没有,那么想象我莫名其妙地获得一个指向第一个元素,并使用诉 taht而不是[I] 。 解决方案 从指针到第一个元素访问多维数组的元素是UB对于 ..
发布时间:2016-06-01 13:52:46 C/C++开发