#include <stdio.h>
void ad(int *a)
{
int b = 10;
a = NULL;
a = &b;
printf("ad(int *a)\n");
printf("int a = &b %%x *a %x - > \n", *a);
printf("int a = &b %%d *a %d - > \n", *a);
printf("int a = &b %%x a %x - > \n", a);
printf("int a = &b %%p a %p - > \n", a);
}
int main(void)
{
int* a;
a = NULL;
printf("main()\n");
printf("int* a %%x: %x\n", a);
printf("int* a %%p: %p\n", a);
ad(a);
printf("main()\n");
printf("int* a %%x: %x\n", a);
printf("int* a %%p: %p\n", a);
return 0;
}
//
main()
int* a %x: 0
int* a %p: (nil)
ad(int *a)
int a = &b %x *a a - >
int a = &b %d *a 10 - >
int a = &b %x a ffd0fbec - >
int a = &b %p a 0xffd0fbec - >
main()
int* a %x: 0
int* a %p: (nil)
----------------------------------------------------------------------------
젊음'은 모든것을 가능하게 만든다.
매일 1억명이 사용하는 프로그램을 함께 만들어보고 싶습니다.
정규 근로 시간을 지키는. 야근 없는 회사와 거래합니다.
ad(a) 로 다시 해 보세요. 그리고 debug 를
ad(a) 로 다시 해 보세요. 그리고 debug 를 해 보세요.
line-by-line 으로 따라가면서 a 주소를 확인하다 보면 해결되실 겁니다.
출력해서 확인보세요
http://codepad.org/LsMUhIYz
#include <stdio.h> void ad(int *a) { int b = 10; a = NULL; a = &b; printf("ad(int *a)\n"); printf("int a = &b %%x *a %x - > \n", *a); printf("int a = &b %%d *a %d - > \n", *a); printf("int a = &b %%x a %x - > \n", a); printf("int a = &b %%p a %p - > \n", a); } int main(void) { int* a; a = NULL; printf("main()\n"); printf("int* a %%x: %x\n", a); printf("int* a %%p: %p\n", a); ad(a); printf("main()\n"); printf("int* a %%x: %x\n", a); printf("int* a %%p: %p\n", a); return 0; } // main() int* a %x: 0 int* a %p: (nil) ad(int *a) int a = &b %x *a a - > int a = &b %d *a 10 - > int a = &b %x a ffd0fbec - > int a = &b %p a 0xffd0fbec - > main() int* a %x: 0 int* a %p: (nil)----------------------------------------------------------------------------
젊음'은 모든것을 가능하게 만든다.
매일 1억명이 사용하는 프로그램을 함께 만들어보고 싶습니다.
정규 근로 시간을 지키는. 야근 없는 회사와 거래합니다.
각 분야별. 좋은 책'이나 사이트' 블로그' 링크 소개 받습니다. shintx@naver.com
댓글 달기