<div>아래의 코드를 디버그로 실행해서 포인터 p1,p2가 생성될때 메모리를 뜯어보니까</div> <div>p1은 0x773228 p2는 <span style="font-size:9pt;">0x773248인데</span></div> <div><span style="font-size:9pt;">메모리의 hex값은</span></div> <div><span style="font-size:9pt;"><br></span></div> <div> <div>0x773228: 68 ab ab ab ab ab ab ab|ab fe ee fe ee fe ee fe h««««««««þîþîþîþ</div> <div>0x773238: 00 00 00 00 00 00 00 00|3f c8 f9 00 9f 31 00 1f ........?Èù.1..</div> <div>0x773248: 68 ab ab ab ab ab ab ab|ab fe ee fe ee fe ee fe h««««««««þîþîþîþ</div> <div style="font-size:9pt;"> <div style="font-size:9pt;"><span style="font-size:9pt;">0x773258: 00 00 00 00 00 00 00 00|19 c8 fa 25 9f 31 00 00 .........Èú%1..</span></div></div></div> <div style="font-size:9pt;">이더군요.</div> <div style="font-size:9pt;">포인터p1,p2가 생성될때 그 포인터가 가르키는 메모리 주소의 헥스값이 <span style="font-size:9pt;">68 ab ab ab ab ab ab ab|ab fe ee fe ee fe ee fe</span><span style="font-size:9pt;"> 로 동일한걸로 보면</span></div> <div style="font-size:9pt;"><span style="font-size:9pt;">아무래도 같은 Person 클래스의 코드를 나타내는 p1과 p2의 헥스값으로 생각되는데...</span></div> <div style="font-size:9pt;"><span style="font-size:9pt;">물론 p1,p2는 현재 함수만 가지고 있고 맴버변수는 아무것도 없어서 디버거에서는 값이 아무것도 나오지 않습니다만 실제 메모리에서는 저 헥스값을 가지고 있는걸로봐서는 이 헥스값을 c코드를 변환할 수 있을거 같은데요.</span></div> <div style="font-size:9pt;"><span style="font-size:9pt;">혹시 저런 메모리주소에 있는 헥스값을 c코드로 변경하는 방법을 있다면 꼭 가르쳐 주셨으면 좋겠네요.</span></div> <div><br></div> <div> <div>#include <iostream></div> <div><br></div> <div>using std::cout;</div> <div>using std::endl;</div> <div><br></div> <div>class Person{</div> <div><br></div> <div>public:</div> <div> Person* GetThis(){</div> <div> return this;</div> <div> }</div> <div><br></div> <div>};</div> <div>int main(){</div> <div><br></div> <div>cout<<"*****p1의 정보*****"<<endl;</div> <div>Person *p1=new Person();</div> <div>Person *p2=new Person();</div> <div>Person p3;</div> <div>cout<<"포인터 p1:"<<p1<<endl;</div> <div>cout<<"p3의 주소값:"<<&p3<<endl;</div> <div>cout<<"p1의 this:"<<(*p1).GetThis()<<endl;</div> <div><br></div> <div><br></div> <div><br></div> <div>cout<<"******p2의 정보********"<<endl;</div> <div><br></div> <div>cout<<"포인터 p2:"<<p2<<endl;</div> <div>cout<<"p2의 this:"<<(*p2).GetThis()<<endl;</div> <div>return 0;</div> <div>}</div></div> <div><br></div> <div><br></div>
댓글 분란 또는 분쟁 때문에 전체 댓글이 블라인드 처리되었습니다.