근데 실제로 해보면 프로그램 잘 작동하고 심지어 b의 크기를 알아볼려고 적어둔 코드에선 a에 어떤수를
입력하든 상관없이 4로만 나옵니다 왜이런거죠?
Hit : 3158 Date : 2012/01/31 11:48
effortkim
sizeof(b)를 했을 때 4바이트가 나온 이유는, b가 포인터로 선언되었기 때문입니다. 이는 당연한것이, b가 가리키는 메모리 공간이 a값에 따라 달라지는것이지 변수 b의 크기가 달라지는것은 아니기 때문입니다. 32bit OS에서는 메모리에 부여되는 주소값이 4바이트입니다.
2012/02/01
effortkim
그리고 혹시나 확인해 보았는데, 윈도우 환경에서 오버플로우가 일어납니다. 리눅스도 (당연히) 일어날 것입니다.
2012/02/01
rocket07
아하! effort님 답변 감사합니다!
근데 또 궁금점이 하나있는데요, b 이거 말고 *b로 해서 메모리확보할려구하면 오류가 나는데