강좌 & 팁
글 수 2,412
2012.03.29 18:26:07 (*.52.177.29)
47258
잘못된 자료형을 가리키는 포인터 변수
포인터 변수의 자료형과 실제로 가리키는 변수의 자료형이 일치해야 한다.
다음의 예제를 보자
#include <stdio.h>
int main()
{
int inum;
float *fp;
fp = &inum;
inum = 399;
*fp = fp +1;
printf("%d\n, *fp);
return 0;
}
프로그램 설명
float형의 포인터변수 fp가 int형의 변수 inum의 주소를 받았다. fp는 잘못괸 자료형을 가리키게 되어 컴파일 단계에서 warning 이 발생하고, 실행하면 잘못된 결과가 나온다.
포인터 변수가 다른 자료형의 변수를 가리키면 프로그램의 오류를 발생시킨다. 따라서 포인터 변수를 사용할 때는 적절한 자료형을 사용하는 것이 필요하다.
#include <stdio.h>
int main()
{
float fnum;
float *fp;
fp = &fnum;
fnum = 399;
*fp = fp +1;
printf("%\n, *fp);
return 0;
}
로 하면 정상적으로 출력 된다.