[問題] 想請問為甚麼我的程式跑出來會當掉?

看板C_and_CPP作者 (povertytrap)時間12年前 (2012/02/10 17:12), 編輯推噓1(1011)
留言12則, 4人參與, 最新討論串1/1
#include <stdio.h> #include <stdlib.h> void show(int,int,int *,int *); int main(void) { int a=28,b=16; int *ptr1,*ptr2; printf("a=%2d, b=%2d\n",a,b); show(a,b,ptr1,ptr2); ptr1=&b; /* 將ptr1設為a的位址 */ show(a,b,ptr1,ptr2); ptr2=&a; /* 將ptr2設為b的位址 */ show(a,b,ptr1,ptr2); *ptr1=4; show(a,b,ptr1,ptr2); a=16; show(a,b,ptr1,ptr2); *ptr2=12; show(a,b,ptr1,ptr2); ptr2=ptr1; /* 設定ptr1=ptr2 */ show(a,b,ptr1,ptr2); *ptr1=19; show(a,b,ptr1,ptr2); ptr1=&a; show(a,b,ptr1,ptr2); a=7; show(a,b,ptr1,ptr2); *ptr2=*ptr1; show(a,b,ptr1,ptr2); system("pause"); return 0; } void show(int a,int b,int *p1,int *p2) { printf("a=%2d, b=%2d, ",a,b); printf("ptr1=%p, *ptr2=%2d\n",p1,*p1); printf("ptr1=%p, *ptr2=%2d\n",p2,*p2); }想請問各位大大 這題題目是說印出美一步驟各參數與指標的值 可是我怎麼看程式都沒有問題 為甚麼會當掉且值只跑兩行? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 122.125.225.198

02/10 17:19, , 1F
十戒第三條 使用不知指向何處的指標
02/10 17:19, 1F

02/10 17:19, , 2F
你第一次show的時候,ptr1與ptr2並沒有指向有效的位址
02/10 17:19, 2F

02/10 17:20, , 3F
int *p; printf("%d", *p); 這樣會當掉,看一下一樓說的
02/10 17:20, 3F

02/10 17:20, , 4F
了解謝謝各位= =
02/10 17:20, 4F

02/10 17:24, , 5F
可是解答指標沒給初值一樣有寫前面兩行函數耶?
02/10 17:24, 5F

02/10 17:24, , 6F
哪一本書?
02/10 17:24, 6F

02/10 17:24, , 7F
要用 debugger 看啊orz
02/10 17:24, 7F

02/10 17:25, , 8F
C語言教學手冊第四版
02/10 17:25, 8F

02/10 17:25, , 9F
我不會用debugger= =
02/10 17:25, 9F

02/10 17:29, , 10F
debugger教學 http://ppt.cc/0ogg
02/10 17:29, 10F

02/10 17:29, , 11F
另外合理的懷疑是書本寫錯了
02/10 17:29, 11F

02/10 17:31, , 12F
謝謝 樓上各位
02/10 17:31, 12F
文章代碼(AID): #1FDD-IDY (C_and_CPP)