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