첫째 예외가 있습니다. 0xC0000005: 0x00000018 위치를 읽는 동안 액세스 위반이 발생했습니다.

Skills/Programming 2014. 11. 12. 15:06

프로그래밍을 하다보면 가장 자주 만나는 에러 메시지 중의 하나이다..

첫째 예외가 있습니다. 0xC0000005: 0x00000018 위치를 읽는 동안 액세스 위반이 발생했습니다.


가장 흔히 하는 실수로는 아직 할당하지 않은 메모리에 접근하는 경우에 발생한다.

예를 들어 A 라는 class를 정의해 두고서 A의 포인터 객체를 생성한 후 메모리를 할당하지 않은 상태에서 

포인터 객체의 멤버에 접근을 하는 경우에 발생하는 경우가 가장 흔하다.


A *a;

a ->멤버함수 or 멤버변수 사용 ;

...첫째 예외가 있습니다. 0xC0000005: 0x00000018 위치를 읽는 동안 액세스 위반이 발생했습니다.


a라는 포인터 객체를 생성했다면 new 연산자를 통해 메모리를 할당해 주어야 한다. 

아래와 같은 패턴으로 사용하면 에러 메시지는 발생하지 않을 것이다.


A *a;

a = new A;

a ->멤버함수 or 멤버변수 사용 ;

delete a;  //이 때 가장 중요한 메모리 해제는 잊으면 안된다.


그런데, 내가 이번에 경험한 경우는 Roboticslab이라는 시뮬레이션 프로그램을 짜다가 발생한 문제이다.

xdl 파일을 통해 control algorithm이 작성되어있는 dll을 하나의 응용프로그램에서 공유하면서 발생한 문제인 것으로 보여진다.

이유는 모르겠지만 ,TeachingSW라는 클래스의 포인터 객체를 생성하여 메모리를 할당한 후에 멤버 변수에 접근을 했음에도 위와 같은 엑세스 에러가 발생했다.

그래서 직접 해당 에러가 발생하는 변수만 memset을 통해 메모리를 설정해 주니 해당 에러가 없어지는 것아닌가.. 

정확한 원인은 파악하지 못했지만, 임시 방편으로 발견한 해결책이라도 기억해 두면 좋을 것 같다.


구현 예..


  ///////////////////////////////////

//// TeachingSW 관련 변수 초기화

if (StringComp(identifier, id_L) == 1){

T_HML = new TeachingSW_HM;

memset(&T_HML->home_q, 0, sizeof(T_HML->home_q)); //// 정말 이상한 점... home_q만 건들면 엑세스 에러가 발생해서 멤셋을 따로 해준다..

T_HML->home_q.resize(7); //// 정말 이상한 점인데... home_q만 건들면 엑세스 에러가 발생해서 멤셋을 따로 해준다..

T_HML->event_q.resize(7);

T_HML->cur_q.resize(7);

T_HML->des_q.resize(7);

}

else if (StringComp(identifier, id_R) == 1){

T_HMR = new TeachingSW_HM;

memset(&T_HMR->home_q, 0, sizeof(T_HMR->home_q)); //// 정말 이상한 점... home_q만 건들면 엑세스 에러가 발생해서 멤셋을 따로 해준다..

T_HMR->home_q.resize(7); //// 정말 이상한 점인데... home_q만 건들면 엑세스 에러가 발생해서 멤셋을 따로 해준다..

T_HMR->event_q.resize(7);

T_HMR->cur_q.resize(7);

T_HMR->des_q.resize(7);

}







설정

트랙백

댓글

클래스 객체 생성 방법에 관하여.. (new 사용에 관하여)

Skills/Programming 2014. 11. 12. 14:57

클래스의 객체를 생성할 때 new 를 사용하는 이유가 무엇일까.

헤더 파일에 new를 사용하지 않은채 사용하면 안되는 것일까?

예를 들어, 

TeachingSW_HM T_HM;


그런데 이렇게 했을 때에는 메모리가 스택영역에 올라가게 된다고 한다. 

그래서 변수가 올라가는 영역을 벗어날 경우에 메모리가 자동으로 해제된다. 


그러나 new를 활용하여 메모리를 동적으로 할당할 경우

예를 들어,

TeachingSW *T_HM;

T_HM = new TeachingSW();


메모리는 힙 영역으로 올라가게 되어 delete를 이용해서 직접 해제하기 전까지는 메모리에 유지가 된다.


설정

트랙백

댓글

웨딩촬영 헤어 메이크업 에브뉴준오 / 에비뉴준오

Daily life/My wife 2014. 11. 8. 17:53

2011. 0. 0.

웨딩촬영 당일 아침 일찍 와이프 헤어와 메이크업을 위해 청담 에브뉴준오를 방문했습니다.

아함 졸려~~ 가운 입고 대기하는 아저씨..

넘 일찍 온거 아녀..?

제 이름 따위는 중요하지 않습니다. 

모든 결혼 준비 과정에서 누구의 남편이냐가 중요하다는 사실..



와이프와 함께 셀카로 장난도 치고~







셀카놀이가 끝나고 와이프 머리를 셋팅해 놓고 메이크업에 돌입!



그렇습니다.. 예뻐지는 것 역시 매우 피곤한 일인가 봅니다.



여긴 어디였더라.. 벌써 3년 전 일이라 가물가물 하기 시작.. 


메이크업이 완성된 후 와이프가 셀카를 찍은 듯 하네요..


이제 셋팅해 두었던 머리를 손질하기 시작!!



기분이 좋았는 지 셀카를 참 많이도 찍었네요..


저는 어느새 다 하고 기다리고 있었습니다.




이제 드레스업까지 하고나서 또 셀카를 찍습니다..

ㅡㅇ


이렇게 웨딩 촬영을 위한 메이크업을 마치고 촬영을 위해 우리를 기다리고 있는 모뉴먼트로 이동합니다.. 

웨딩촬영의 노동은 이 때가 시작이었다는 것을 진작 알았더라면.. 마음의 준비를 더 했을텐데!!




설정

트랙백

댓글

Robot Dynamics 초간단 정리

Research/Robotics 2014. 11. 8. 02:37

로봇의 torque와 force간의 관계는 Jacobian의 transpose로 사상될 수 있다.



그런데 왜 그럴까? 에 대한 고민에서 출발한 수식!

언제 시간이 날 때 다시 차근차근 설명을 곁들여 보자.



설정

트랙백

댓글

LATEX PDF compliance 문제... " ~ has the wrong paper size (A4 instead of the required Letter) "

Research/Paper work 2014. 11. 8. 02:07

2014. 10. 16

 

이번에 humanoids2014 논문 final version을 제출하면서 pdf compliance문제 때문에 한참을 고생했습니다. ㅠㅠ

 

IEEE에서 제공하는 latex 템플릿을 활용했으며, 아래와 같이 하라는대로 잘 코멘트 했음에도 불구하고 계속 paper plaza의 compiler에서 compliance error가 발생..

-----------------------

\documentclass[letterpaper, 10 pt, conference]{ieeeconf}  % Comment this line out if you need a4paper

%\documentclass[a4paper, 10pt, conference]{ieeeconf}      % Use this line for a4 paper

..

..

-----------------------​
 

error 메시지는 " ~ has the wrong paper size (A4 instead of the required Letter) " 라는 식으로 나옵니다.

열심히 구글링을 한 결과... 해결책을 얻을 수 있었습니다. ㅠㅠ

 

저는 Winedt을 사용해서 latex을 빌드하는데, 이 때 MikTex 옵션을 아래와 같이 설정할 수 있었습니다.

애초에 이것이 A4로 고정되어 있었던 것... 아무리 documentclass 건드려도 이거 안고치면 해결이 안되었던 것이죠.. -_-

 

 

 

 

그리고 추가로, 가끔 Winedt을 쓰다보면 Miktex configuration이 안되어서 고생하는 사람들을 볼 수 있는데..

 

Options에 보면 Execution mode 설정하는 것이 있습니다.

여기에서 Miktex가 설치된 경로를 잘 설정해 주면 됩니다.

저의 경우에는 아래와 같이 설정해 주면 되었습니다..

Tex Root

F:\Program Files\MiKTeX 2.9

Tex Bin

F:\Program Files\MiKTeX 2.9\miktex\bin\x64

'Research > Paper work' 카테고리의 다른 글

Decision from Autonomous Robots (SCI Journal)  (0) 2014.11.08

설정

트랙백

댓글

Decision from Autonomous Robots (SCI Journal)

Research/Paper work 2014. 11. 8. 02:00

2013년 10월 11일


석사 학위를 위해 연구했던 테마를 정리하여 쓴 논문이

Autonomous Robots에 accept 되었습니다.


An active sensing strategy for contact location without tactile sensors using robot geometry and kinematics


사실 논문의 질은 마음에 들지 않지만, 연구소에 와서 틈틈이 정리해서 낼 수 있었다는 데 긍정적 의미가 있다고 생각합니다. 

생각중



해당 분야를 계속해서 연구하고 싶은데 현실은 다른 곳에서 헤메고 있다는 게 안타깝지만..

슬퍼2  언젠가 다시 이 분야를 연구할 수 있는 날이 오기를 바라며..

 


Fourier도 연구를 연구를 지속해야 할 때, 나폴레옹이 이집트로 보내서

연구의 공백이 있었다는 것으로 알고 있습니다!!

 


비록 다른 분야의 일을 하고 있지만 ETRI에서 틈틈이 '일' 이 아닌 '연구' 를 할 수 있도록 노력을 해야겠습니다. 

파이팅

 

어쨌거나 약 9개월에 걸친 리뷰 끝에 accept 된 논문! 인증샷-!

 

 



 

 

설정

트랙백

댓글