int (*)(const char *, ...); // printf문의 type형
int main()
{
int (*p)(const char *, ...);
p("hi\n");
return 0;
}
{
int (*p)(const char *, ...);
p=printf; // printf 대신 scanf를 대입하면 p를 scanf로 사용가능
p("hi\n");
return 0;
}
((int(*)(const char *,...))0x8048300) // 완전한 printf문
int main()
{
((int(*)(const char *,...))0x8048300)("hi\n"); // 주소를 적을 경우는 주소가 변하기때문에 한계가 있다.
return 0;
}
{
((int(*)(const char *,...))0x8048300)("hi\n"); // 주소를 적을 경우는 주소가 변하기때문에 한계가 있다.
return 0;
}
int (*)(const char *, ...); // scanf문의 type형
int main()
{
p("%d", &a);
{
int a;
int (*p)(const char *, ...);
p=scanf; // scanf 대신 printf를 대입하면 p를 printf로 사용가능
p("%d", &a);
p=printf;
p(%d", a);
return 0;
}
p(%d", a);
return 0;
}
'C언어 > 강의' 카테고리의 다른 글
2010년 11월 15일 월요일 (배열과 포인터) (0) | 2010.11.15 |
---|---|
2010년 11월 15일 월요일 (함수 포인터 배열) (0) | 2010.11.15 |
2010년 10월 22일 금요일 (함수) (0) | 2010.10.22 |
2010년 10월 21일 목요일 (포인터변수를 이용한 연산 & 주소값 연산) (0) | 2010.10.21 |
2010년 10월 21일 목요일 (Source Insight 사용하여 DDRF헤더파일 분석하기) (0) | 2010.10.21 |