| [ CnUnix ] in KIDS 글 쓴 이(By): HellCat (아가남편) 날 짜 (Date): 1995년08월28일(월) 22시58분42초 KDT 제 목(Title): [re] 간단한 문제..가 아닌데.. 우선 char buf[10]; char *ptr = buf + 2; 여기서 ptr = &(buf[2]) 가 되고 그리고 이 포인터 주소를 롱인티져 포인터로 캐스팅해서 그 내용을 롱 인티져로 캐스팅하고.. 여기까지 일단 문제는 buf[2] 의 값은 undefined 대부분의 경우 main 에서 처음 시작하는 부분이니까 NULL 패드가 되어있겠지만..하지만..C 는 그 값이 널이라고 define 한적이 없으니.. undefined 가 답이 될테고. 그럴 경우 *((long*)ptr) 이부분의 결과는 undefined 가 되는게 답이라고 할수있겠죠. 그리고 다시 이것을 unsinged long 으로 캐스팅하면 (unsigned long int) (undefined value) 이렇게 되는 것이니 결국 undefined 가 답이 되어야 하는데.. 즉 다시 말하면 콤파일해서 엑시큐션 했을때 답이 머가 나와도 콤파일러가 잘못했다고 불평을 할수가 없다는 이야기가 아닌가요? --- hellcat@korea.slip.umd.edu if (t_snddis(KIDS[i].fd, (struct t_call *)NULL) == -1) { t_error("날 죽여라!!"); longjmp ((jmp_buf) HELL, -1); } --- dkim@cwc.com |