int *abc;
int *abc2;
int *abc3;
abc = (int*)&(cache);
abc2 = (int*)&(cache.a);
abc3 = (int*)&(cache.b);
printf(\"a start: %p\\n\",abc2);
printf(\"b start : %p\\n\",abc3-abc);
cache 는 구조체 이름이야..
이런식으로 하니 상대주소 출력은 됐는데말야. 예상했던 값은 아니야.
근데 여기서 int * 를 char * 로 전부 바꾸면 예상했던 결과로 나와
도대체 포인터 타입과 캐스팅에 따라서 무슨 차이가 있는거지?
난 포인터 타입은 ++ 연산을 할 떄 메모리에서 이동되는 크기만 다른거고 전부 4바이트라고 알고 잇거든?
포인터 타입에 따라서 주소값이 틀리는 괴현상.
c++(125.132)
2011-01-19 16:53
추천 0
댓글 7
다른 게시글
-
요즘따라 점심 or 저녁으로 짱깨를 덜 먹었더니... [1]아주아슬(asul1862) | 11.01.19추천 0
-
로버트 박... 이분 기사가 떴네요... [6]로버트박(118.127) | 11.01.19추천 0
-
여태까지 본 시험중에 가장 어려웠던 시험..허허벌판(tramp0103) | 11.01.19추천 0
-
동방불패는 왕자의 바람 [2]개쉛기(legionss) | 11.01.19추천 0
-
워드프로세스 1급 필기 양많구나... [4]쿨럭(203.255) | 11.01.19추천 0
-
변수의 주소 차이값 출력하는방법? [6]c++(125.132) | 11.01.19추천 0
-
뽀뽀뽀 보는데 오글오글거린다..비우그라(qnpfrmins104) | 11.01.19추천 0
-
디시가 망해가나....... [1]12324(bad9110) | 11.01.19추천 0
-
아..안드로이드 [1]ㅅㅂ맨날배..(rimal) | 11.01.19추천 0
-
C언어를 배우고나면 다음에 뭘 배워야 하나요? [5]좃뉴비늑대..(libsul) | 11.01.19추천 0
낚시?
ㅡㅡ 난 심각한데..
나름 c언어는 좀 안다고 생각했는데 실무에 들어가니 생각지도 못한 곳에서 막히네요..도와주세요~
++ 뿐만이 아니라 모든 증감연산에 대해 단위가 달라짐ㅇㅇ
그건 그렇다치고..주소값이 왜 다르게 저장되는거임? 난 증감연산도 안하고 단지 주소값을 출력한건데 캐스팅을 뭘로 하느냐에 따라서 주소값이 바뀌다니 이상하잔어..
상대주소 계산할땐 연산 안했나여?
http://www.cs.umd.edu/class/spring2003/cmsc311/Notes/BitOp/pointer.html
아 맞다..abc2 -abc 이렇게 연산을 하지..