[ CnUnix ] in KIDS 글 쓴 이(By): hosoft (최종호) 날 짜 (Date): 1994년02월07일(월) 19시12분09초 KST 제 목(Title): Re:[퀴즈] 왜 죽을까요? 안녕하세요? 이 보드에 처음으로 글을 올리는 것 같네요. 제 생각으로는 zeo님이 Compact, Large, Huge모델에서 죽는다고 한데에서 답이 있지 않을까 생각해요. 그쪽에서는 포인터가 아마 seg와 off로 된 4바이트겠지요. 근도� malloc()함수를 컴파일러가 만났을 때 그 형을 알 수 없으니 리턴값응� int로 생각하겠지요. 그래서 실제로 malloc이 1234:5678이라는 주소를 리턴해도 그 중에서 5678만이 malloc의 리턴값이 되고 이것을 다시 (char *)로 캐스팅을 하게 되니까 0000:5678이 되겠지요. 피시 메모리만� 아시는 분들은 뭔가 위험하겠다는 것을 느끼시겠지요? 특히 뒤의 off가 0-0x100(?)으로 벡터테이블쪽으로 가면 거의 일그러진 옴�면을 볼 수 밖에 없을꺼예요. 음.. 그러니까 제대로 돌게 하려면 malloc()의 원피活� 선언되어 있는 헤더를 #include 시켜주면 되지 않을까 합니다. 이거 아닌가? 덧말: 에디터가 상당히 불편하네요. :( |