수치심의 20 라인
쌀 요리는 않지만, 나는에서의 메모리 관리와 관련된 초기 경력에 내게 일어난 흥미로운 사건을 기억하는 C + +. 그 당시 나는 훨씬 더했습니다. 더 거만 많은 초보자와 어린, 더 빨리 ...
경험 많은 동료가있는 모든 새 위해 해당 삭제 있어야한다고 또 다른 경험이 적은 동료에게 설명했다. 그렇지 않으면 개체가 메모리에 유지되며 메모리 누수가있을 수 있습니다.
이 시점에서 그 사람을 방해하고 "그것이 범위의 대상 밖이 소멸자가 자동으로 호출됩니다 있도록 충분하지 반드시 때문입니다."고 말했다.
그 때부터 인수 및 카운터 인수로 10 분 토론이 롤백, 그리고 팀 전체가 지켜보고 중단되었습니다. 결국, 절반 팀은 그와 나와 함께 나머지 절반은 동의하고, 그 시점은 아무도 염두에두고 확인하는 방법이 없었습니다. 인터넷에서 보라는 옵션이 아니었다.
나는 이미 PHP, 자바와 C로 프로그래밍해서, 모든 대답을 가지고 마찬가지로 + + 나중에 내 가슴을 찢는 것을 보여줄 것이었다.
일 후, 그 철학적 순간, 나는 메모리 주소는 두 번째 옵션은 일반적으로 무의미한 있지만 당신도 공통 번호로 주소를 변환하고, 다른 방법으로 갈 수있는 숫자는 것을 기억.
그리고는 내 이론을 증명하는 방법 생각해낸 : 그것은 새로운 할당 제한된 범위를 가진 개체를 만들 것입니다. 내가 제한된 범위의 긴 밖의 일반적인 숫자로이 개체의 주소를 유지할 것이 제한된 범위를 마무리 기대 obejto의 소멸자도 호출하고 바깥쪽 범위는, 메모리의 영역을 액세스하는 개체의 주소를 나타내는 숫자를 사용합니다 받을 것을 보여주는 SIGSEGV가 잘못된 메모리 영역에 접근을 시도하여 (분할 오류). 그렇다면 아래 코드를 생성.
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | # 포함 # <string> 포함 네임 스페이스 표준을 사용; int argc, char ** argv ) { int는 메인 (int는 argc, 문자 ** argv가) { 0 ; 서명되지 않은 긴 = 0; { new string ( "Hello World!!!" ) ; * str을 보여주고 = 새 문자열 ( "안녕하세요!"); unsigned long ) str ; NUM = (부호없는 긴)는 str; "str: " << str << endl ; cout << "하위 버전 :"<< endl << str을 보여주고; "num: " << num << endl ; cout << "개수 :"<< endl <<; } * ( ( string * ) num ) << endl ; cout << * ((* 문자열)) << endl; ; 0을 반환; } |
프로그램이 내 얼굴에 폭발되지 놀랍게도, 보라. 그는 정확하게 사실 제가 잘못 생각 한 것을 보여주했습니다.
이상 제가 예, 거기에 각각에 대해 새이어야하며만을 삭제해야한다는 실감하고, 각각의 새로운에 대한 더 검색은 [] 하나와 하나가 []를 삭제해야합니다. 제가 메모리 관리 및 범위에 대해 알고 생각했는지, 아마 다른 언어 간의 몇 가지 혼란했습니다.
나는 토론 일 전 시작했을 때, 나는 초보자가 저지른 모든 기본적인 실수를했다 :
- 그것 불리는 곳이 간섭.
- 욕설 어떤 증거도없이 바로 무엇 대기.
- 경험 많은 사람의 지식을 과소 평가.
- 당신은 그냥 클래스에서 참조해서이 모든 답을 다 아는 것 같다.
- 그들은 여러 언어의 기초를 알아야하기 때문에 이렇게 모든 해답을 가지고 있다고 생각합니다.
종의 어떤 좋은 멤버와 마찬가지로 sapiens 호모 , 똥을 했어요. 이 발견에 대한 나의 반응은 전체 팀을 데리고와 내가 헛소리에 사과 이것을 입증하는 데 사용할 코드 이십 라인을 보여, 틀렸습니다. 또한, 나는 모든 소스를 연구 것으로 나타났다, 그리고 우리처럼 탈출하고 있다고 메모리 관리에 관한 기타 세부 사항도 내신 순환 참조 . 이것은 프로젝트의 몇 가지 부품을 다시 desing로 이끌었다.
제 20 줄을 cógigo은 "수치심의 20 줄을"로 알려진되었고 natualmente 난 너무 패배했습니다. 누구든지 의심 있었 때마다 "테스트 vegonha 20 라인이있다."이야기 의미는 "나중에 망신 당할 수있는 간단한 테스트가있다."같은 일이었습니다
가장 중요한 것은 내 사후 이런 태도가 잘 접수 및 팀에 혜택을 가져온다고합니다. 조만간 떨어져 shied다면 어떤 사람이 내가 장면 뒤에, 모두, 또는 더 나쁜 앞에 틀렸습 증명할 것이다. 실수를 인정하고 배울는가 도전을받을 준비가되었음을 보여주었다. 이 팀의 외에도 더 많은 나는 (나는 나보다 더 닮았 ...) 거만하게 보였습니다, 나는 그것이 평범한 인간 알았 것을 보여주었다, 그는 누구로, 나는 누구보다도 생각하지 않는 실수를했습니다. 다른 팀 구성원이 똑같이 부담하고 우리가 더 응집력 팀이되기 위해 이것을 용이하게했다.
댓글
- 마르쿠스 안토니우스
- http://blabos.org blabos
- Junio
- ♣ ♦ ♥ ♠ 익살 히메
- Blebe의 http://blabos.org Blabos
- ♣ ♦ ♥ ♠ 익살 히메
- Blebe의 http://blabos.org Blabos

