評價: 0 回應: 1 閱覽: 119
置頂

多了printf 之後 結果不一樣

#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

熱門回應

這種加個printf執行就不一樣的 99%都是未定義行為

例如這篇未定義行為就出在pcell_sig=&a之後幾行

會員登入 (先登入會員才能回覆留言喔!)

Facebook留言