PTT
Submit
Submit
选择语言
正體中文
简体中文
PTT
C_and_CPP
[问题] 多了printf 之后 结果不一样
楼主:
chaioo
(JoJo)
2015-06-08 14:43:12
开发平台(Platform): (Ex: VC++, GCC, Linux, ...)
额外使用到的函数库(Library Used): (Ex: OpenGL, ...)
问题(Question):
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
int *pcell_sig;
int main()
{
int a = 5;
int b=4;
int c=3;
//printf("%p\n",&a);
//printf("%p\n",&b);
//printf("%p\n",&c);
pcell_sig = (int *)new int[3];
pcell_sig=&a;
pcell_sig[1]=b;
pcell_sig[2]=c;
printf("%d\n",*pcell_sig);
printf("%d\n",pcell_sig[1]);
printf("%d\n",pcell_sig[2]);
return 0;
}
把中间那三行printf mark掉之后
printf出来的结果是5 4 4
但是如果没有mark掉
printf出来的结果是 5 4 3
请问各位大大 哪里有bug?
喂入的资料(Input):
预期的正确结果(Expected Output):
错误结果(Wrong Output):
程式码(Code):(请善用置底文网页, 记得排版)
补充说明(Supplement):
作者:
chchwy
(mat)
2015-06-08 14:45:00
pcell_sig=&a; <= 这行你知道在写啥吗?
作者:
johnhmj
(耗呆肥羊)
2015-06-08 15:03:00
虽然系统有回收机制但是用new最好再加上delete
作者:
shadow0326
(非议)
2015-06-08 15:32:00
这种加个printf执行就不一样的 99%都是未定义行为例如这篇未定义行为就出在pcell_sig=&a之后几行
作者: anyoiuo
2015-06-08 16:25:00
加上volatile int你就会看到有无printf一样也GG可以玩看看,
http://goo.gl/MbH5IP,
按Compile再Run。
楼主:
chaioo
(JoJo)
2015-06-08 19:37:00
感谢各位高手 我了解了
继续阅读
Re: [问题] c++问题
johnhmj
Re: [问题] 不均等随机的设定方式?
damody
Re: [问题] c++问题
kosl
[问题] 不均等随机的设定方式?
ggg1356114
Re: [问题] 一个专案使用两种namespace
LPH66
[问题] c++问题
kosl
[讨论] 新手c语言
ga2006114934
[问题] C的推荐书 (原标题有点不适合)
crazycat2
[问题] 函式指标如何用template储存?
sohumi
[问题] Class 命名前的名字是?
naikojack
Links
booklink
Contact Us: admin [ a t ] ucptt.com