컴퓨터공학 채널 알림 알림 중 알림 취소 구독 구독 중 구독 취소 구독자 3394명 알림수신 19명 @SeworL 컴퓨터를 좋아하는 사람들의 모임 프로그래밍 언어에서의 엄청난 함정 국가안전기획부장_ 추천 0 비추천 0 댓글 16 조회수 408 작성일 2020-05-30 16:23:02 https://arca.live/b/programmers/1263227 과연 swap(i, A[i])를 수행하면 무슨일이 일어날까?? 추천! 0 ( 0) 비추! 0 ( 0) 공유 댓글 [16] 글쓰기 그러니까 2020-06-06 16:15:56 답글 tmp = i i = A[i] A[i] = tmp 인가? 펼쳐보기▼ 국가안전기획부장_ 2020-06-06 16:17:49 답글 참고로 call by name 형식의 프로그래밍 언어임 ㅇㅇ 펼쳐보기▼ 그러니까 2020-06-06 16:22:20 답글 *수정됨 (실행시 값이 평가되는걸)이런걸 call by name 이라고 하는군요. 처음 알았내요. 그럼 Template 라이브러리는 다 해당되네요. 펼쳐보기▼ 국가안전기획부장_ 2020-06-06 16:23:43 답글 참고로 call by name 형식에서 저렇게 구현하면 엄청난 충격과 공포의 결과가 도출됨 ㅇㅇ 펼쳐보기▼ 익명_vTu21 (222.238) 2020-06-13 07:47:03 삭제 수정 답글 swap(i, A[i]) 1. &i 가 &A[i]가 된다. 원래의 &i 값은 적당한 곳에 저장된다. (tmp라고 둔다.) 2. &A[i]에 tmp를 넣어야 하는데, 지금의 i = A[i]이므로, &A[A[i]]에 tmp가 들어가게 된다. 만약 A[i]가 A의 배열 크기보다 크다면 접근할 수 없는 영역의 값을 고쳐버리게 된다? 펼쳐보기▼ 국가안전기획부장_ 2020-06-13 08:10:37 답글 그렇읍니다. 가 아니라 좀 더 심오한 의미가 잇음 ㅇㅇ 펼쳐보기▼ 익명_vTu21 (222.238) 2020-06-13 11:12:46 삭제 수정 답글 힌트 부탁드립니다 펼쳐보기▼ 국가안전기획부장_ 2020-06-13 11:14:13 답글 call by name 펼쳐보기▼ 익명_vTu21 (222.238) 2020-06-13 11:42:23 삭제 수정 답글 *수정됨 hoxy Call by reference하고 다른건가.....? 난 파이썬만 써서 call by name은 잘 모르는데 검색좀 해봐야겠네 펼쳐보기▼ 국가안전기획부장_ 2020-06-13 11:44:55 답글 call by name은 애초에 A[i]라고 둬도 A[i]를 하나로 생각하지 않고 A, i를 따로 보는거임 ㅇㅇ 펼쳐보기▼ 익명_vTu21 (222.238) 2020-06-13 11:46:46 삭제 수정 답글 ????????? 일단 문제 하나 더 찾음 A가 i하고 다른 타입이면 엉망이 될듯 펼쳐보기▼ 국가안전기획부장_ 2020-06-13 11:48:52 답글 ㄴㄴ 이 때 가정은 A는 int[]이고 i역시 int임 ㅇㅇ 펼쳐보기▼ 익명_vTu21 (222.238) 2020-06-13 11:54:40 삭제 수정 답글 그러면 맨 위에서 말한 메모리의 엉뚱한 부분에 접근할 수 있다는거 말고는 잘 모르겠음 ㅇㅇ (그러니까 A가 차지하는 메모리 근처에 있는 다른 값들에 접근해버린다?) 펼쳐보기▼ 국가안전기획부장_ 2020-06-13 11:55:23 답글 정답임 ㅇㅇ A[i] == i가 아닐 경우 값이 상호교환이 아니라 삼각교환 현상이 발생함 ㅇㅇ 펼쳐보기▼ 익명_vTu21 (222.238) 2020-06-13 12:02:32 삭제 수정 답글 *수정됨 근데 (A[i] >= len(A)) or ( A[i] <0)면 알아서 오류내주지 않음? 저게 되면 대놓고 보안 취약점이잖아 펼쳐보기▼ 국가안전기획부장_ 2020-06-13 12:03:08 답글 아무리 봐도 call by name은 내 취향은 아닌듯 ㅇㅇ 펼쳐보기▼ 새로운 댓글이 달렸습니다! 댓글 작성 음성댓글 아카콘 업로드 중 0초 해당 브라우저에서는 오디오 플레이어를 지원하지 않습니다. 녹음 중지 삭제 업로드 작성 글쓰기 전체글 개념글 등록순 추천순 (24시간) 추천순 (3일) 추천순 (전체) 댓글갯수순 (3일) 최근댓글순 추천컷 5 10 20 30 50 70 100 기타 최근 최근 방문 채널 최근 방문 채널 모두 삭제 전체 공지사항 질문/조언 읽을거리 번호 제목 작성자 작성일 조회수 추천 공지 아카라이브 모바일 앱 이용 안내(iOS/Android) *ㅎㅎ 2020.08.18 31272144 공지 컴퓨터공학 채널 규칙 (2023-10-05 개정) SeworL 2023.10.05 1488 공지 빠르게 원하는 답변을 받기 위해 피해야 할 질문 방식 유자차 2022.07.02 2800 공지 신문고 SeworL 2023.10.07 818 숨겨진 공지 펼치기(1개) 네트워크 포트에 대해 설명좀 해주세요 [1] 우중충 2020.06.02 202 0 php 배우는중 [2] 별이 2020.06.01 259 0 DNS 할때 S가 시스템이잖아. 이걸 한글로 뭐라 그래야함?(수정) sakasaka 2020.05.31 244 0 프로그래밍 언어에서의 엄청난 함정 [16] 국가안전기획부장_ 2020.05.30 409 0 제대로된 php인강 알려주실수있나요? 별이 2020.05.30 186 0 ‘스트림 버퍼’라는게 있음? [3] RYZEN3600ViLLAIN 2020.05.27 195 0 헤더 파일이 '머리 파일'로 해석하는거냐? [2] RYZEN3600ViLLAIN 2020.05.27 435 0 풀스택 학습기간이 평균 얼마정도 되나요? [1] 별이 2020.05.25 223 0 도대체 이게 뭐지? [3] 풍선광 (221.152) 2020.05.21 268 0 CPP 하면서 느낀점. [4] 그러니까 2020.05.21 287 1 예전에 3389번 포트 그냥 노출시킨 적 있었음. [1] 익명_R6DYx (115.138) 2020.05.16 273 0 교과서 그대로 보고 배끼는 중인데 왜 안되냐 [5] 3600빌런 2020.05.16 434 0 c++ 해당 파일 자체가 포함되어있다가 뭔소리임 [2] 3600빌런 2020.05.15 280 0 [공지] 야 - 2020.05.15. [4] 국가안전기획부장_ 2020.05.14 485 1 자바스크립트없이 풀스택 웹사이트 만드는 법? [5] 별이 2020.05.14 301 0 이런 사이트가 궁금합니다. [1] 익명_CNosu (116.38) 2020.05.13 417 0 뉴비 아닌 뉴비입니다 [5] JS 2020.05.13 525 0 JS 거르고 TS만 배우면 문제가될까요? [2] 별이 2020.05.12 388 0 Opensource 시스템의 문제점 [2] 국가안전기획부장_ 2020.05.12 351 0 Rust는 Go를 이길 수 없을까요 [2] 별이 2020.05.11 415 0 [공지] 아 시발 junit 개꿀잼 ㅋㅋㅋㅋㅋ - 2020.05.11. 국가안전기획부장_ 2020.05.11 256 0 누구나 쉽게 따라할 수 있는 '배열에 1~20사이의 숫자 중복없이 무작위로 저장'해보기 [4] 별이 2020.05.11 327 0 Spring 아직 많이 쓰겠죠? [4] 그러니까 2020.05.10 565 0 개발환경 어떤거 쓰시나요. 다들? [12] 그러니까 2020.05.10 443 0 요즘 리캡차 기본은 그런방식인듯 [3] 익명_R6DYx (115.138) 2020.05.10 213 0 심심풀이 프로젝트 모 없나요? 그러니까 2020.05.09 191 0 안드로이드 프로젝트 생성시 Fragment + ViewModel 이 원래 있었던가? 그러니까 2020.05.09 225 0 울집에 플로피디스크 있음 [6] 3600빌런 2020.05.09 315 0 울 아빠는 Apple II부터 만져보셨다는데 [1] 익명_R6DYx (115.138) 2020.05.08 330 0 여기 html 질문하면 받아주냐 [5] 3600빌런 2020.05.08 242 0 글쓰기 전체글 개념글 등록순 추천순 (24시간) 추천순 (3일) 추천순 (전체) 댓글갯수순 (3일) 최근댓글순 추천컷 5 10 20 30 50 70 100 기타 전체 제목/내용 제목 내용 글쓴이 댓글 Keyword search form input 검색 -4 -3 -2 -1 20-06-02 19:40 +1 +2 +3 +4