Q&A

  • 포인터가 가리키는 주소값은 어떻게??
var

a:^string;

b:string;

begin

b:='aaaa';

a:=@b;



end;



위에서요 a가 b를 가리키는데...

showmessage(a^) 라고 하면 b의 값을 불러오는 건 아는데엽...

어드레스를 구할려고 showmessage(a) 하니 에러가 뜨네엽...

어케 어드레스 구하나여?? ㅠ.ㅠ

초보가 질문드립니당......

2  COMMENTS
  • Profile
    구창민 2000.01.28 22:29
    장용준 wrote:

    > var

    > a:^string;

    > b:string;

    > begin

    > b:='aaaa';

    > a:=@b;

    >

    > end;

    >

    > 위에서요 a가 b를 가리키는데...

    > showmessage(a^) 라고 하면 b의 값을 불러오는 건 아는데엽...

    > 어드레스를 구할려고 showmessage(a) 하니 에러가 뜨네엽...

    > 어케 어드레스 구하나여?? ㅠ.ㅠ

    > 초보가 질문드립니당......



    델파이코리아에도 질문올리셨더군요.

    질문은 한군데에만 올리세요.

    그것이 네티즌의 매너일 것입니다.



    질문하신 것은 ShowMessage(IntToStr(Integer(a))) 하시면 주소를 보시게 될거구요.

    세그먼트 이야기도 하셨던데, 다음과 같은 함수들이 있습니다.

    Addr(), Ptr(), Seg(), Ofs();

    이중 Seg()와 Ofs()는 각각 인자로 주어진 변수의 주소에서

    세그먼트와 옵셋 값을 돌려 주는 함수이므로 원하시는 것에 해당할거 같군요.



    참고로, CSeg, DSeg, SSeg, SPtr 이 네개의 함수도 있는데,

    이들은 각각 코드 세그먼트 레지스터(CS), 데이터 세그먼트 레지스터(DS),

    스택 세그먼트 레지스터(SS), 스택 포인터(SP)의 현재 값을

    돌려준다고 합니다. 아마도 위 함수들은 어셈블리 수준의 저급한 동작을 할때만

    쓰여질거 같네요.

    위 네개의 함수는 저도 한번도 써본적이 없으므로 설명은 못드립니다. ^^

    그럼, 즐거운 프로그래밍 되시길~

  • Profile
    장용준 2000.01.29 01:33
    지송...^^*