ANDI 펭 : 좋아. 섹션의 주 사에 오신 것을 환영합니다. 그것은 아름다운 일이다 여기에 뉴 헤이븐에서 밖으로 그래서 정말 드문 드문 생각 아이들의 산란이 오늘 절 날에 합류, 감사합니다. 이렇게 빨리, 바로 우리 앞에 오늘의 의사 일정을 시작합니다. 우리는 위로 갈거야 몇 개의 간단한 발표. 우리는 정말 엉뚱한 일정이 앞으로 2 주에 오는 또는 그렇게 우리는 그 이상 갈 것입니다. 둘째, 나는 알고있다 모두가 좋아하는 topic-- 나는 이것이 당신의 마음을 녹아 확신 강의하는 동안, 걱정하지 마세요, 나는 아직도 가지를하지 않습니다. 괜찮아. 농담이었다. 나는 실제로 그것을받을 수 있나요. 그러나 나는 있는지 확인합니다 너희들도 그것을 얻을. 그래서 우리는을 보낼거야 정말, 정말 좋은 양 시간 오늘 포인터에 대해 얘기. 당신이 볼 수 있듯이, 사탕의 이야기는 오늘날 거대하다. 우리는 정말 계속거야 그래 that--, 맞아. 사탕을 복용하십시오. 지금은 그들을 주위에 전달하는거야. 걱정 마. 우리는 정말 시도거야 사람들의 혈당을 유지하기 위해 그 뇌가 구울려고하고 있기 때문에 최대 일부 산소 오늘 포인터 때문에 정말 열심히, 정말. 그럼 우리가 이야기하는거야 가지 인 메모리 관리 같은 영역에서. 그리고 우리는 이동하는거야 재 지정 및 파일에 다만 구문입니다 I / O, 좋은 우리가 이야기해야 것. 그리고 마지막으로, 나는 해요 다시 한 번 시도 할 것 pset4 10 15 분처럼 떠날 수 있습니다. 그것은 우리가있어 그렇게 며칠 인해입니다 에가는 것은 정말 종류의 당신에게 몇 가지 유용한 힌트 당신 경우 이미 시작되었다. 쿨. 그래. 그래서 일부 발표 이 다가오는 주에 대한. 등급. 사실에서 알 수없는 당신의 얼마나 많은이 시점 들에 실제로 내 당신이 확인 section--? 그래. 그러나, 당신의 사람들을 위해 내 섹션에 누구, 단지 몇 등급에 대한 의견. 주석의 첫 번째, 정말 좋은 일. 당신의 사람들은 당신,에게 사람을 언급하지 않습니다 당신은 아마 당신 때문에 누구인지 이번 주 박았 구만 어떤 스타일의 포인트를 얻었다. 그냥 있는지 확인하십시오 모두에서 프로그램은 몇 가지 주석을 추가 할 수 있습니다. 정말, 스타일은 정말 간단합니다 범위로 정확한 포인트를 얻을. 우리 그래서, 그냥 확인 당신은 친절 있는지 모두에 대한 간단한 설명을 추가 당신이 무슨 일을하는지에 대한 프로그램. Secondly--이에 대한 큰 문제입니다 지난 week-- 조교의 많은 그래서 당신이 업로드하고 만들 올바르게와 올바른 폴더 라는 이름의 프로그램. 우리는이 요청할 이유는 다음과 같다 우리 때문에, 채점의 과정에서, 실제로 스크립트를 실행하여 자동으로 다운로드 코드 당신의 Pset 모두, 실행 그들 모두에 대한 시험의 정확성, 다음 점수를 업로드 직접 성적표로. 그러나 어떤 시점에서, 당신의 경우 잘못 프로그램의 이름, 전체까지 그 나사 모든 사람을위한 프로그램입니다. 그리고, 합법적으로, 이 아름다운 스크립트 우리는 않는 작성한 것으로 우리를 위해이 모든 완전히 당신이하지 않은 경우 충돌 당신의 프로그램이 제대로 이름. 그러니 그냥 올바른 업로드 폴더는, 그들을 제대로라는 이름의 한 다음 생활이 좋다. 나는 다시 psets를 얻을 에 너희들 이전 나는 빨리 학년 그들에게 얻을 수 있기 때문이다. 그래. 그래. 그리고 또한 우리가 이야기거야 비슷해 예일은 정말, 정말이 이 다음 2 주 엉뚱한 일정. 너희들의 그에 따라서 하버드, 이것이 적용되지 않는다. 그러나 예일대에서 우리를 위해 사랑스러운 아이 우리는이 가을이라고 뭔가, 미안 break-- Harvard-- 우리는이 곳 학교의 오프 오일. 그리고이 사랑스러운 동안, 그것을 종류의 우리의 PSET 리듬을 망쳐 놨어요 psets를 목요일, 금요일 인해 때문이다. 만약 그렇다면 우리가 여기 아니에요 목요일, 금요일, 우리 너희들을위한 일을 가질 수 없습니다 목요일, 금요일에 만기가. 그래서 우리는 우리가있어 일은 ..거야 이것은 무슨 일이 일어나고 있는지 99 % 확신 같은 있을 수있는 몇 가지 변경 그러나 나는 생각 subtle-- 우리는 거 야한다 잔 마셔요 이번 주 정상입니다. 그래서 우리는에 우리의 섹션이 화요일은 근무 시간 뒤에 일주일의 나머지 부분에 걸쳐 다음 pset4 금요일에 예정이다. 그럼, 너희들은 모두 알다시피, 같은 나는 지난 주에 너희들을 생각 나게 우리는 우리의 퀴즈가 0 수요일에 올라오고. 그리고, 자신을 학생 인, 나는 당신의 거의 알고 사람은 실제로 작업한다 퀴즈 전에 이일 pset5. 그래서 우리가 갈거야 아마 일을 끝낼, 월요일 밤, 우리는거야 사실에, 5시 반에서 7시까지, 고찰을 주제에 대한 세션이 덮여. 가을의 경우 불분명 세션이나 Q & A를 검토합니다. 이 리뷰의 일종 될 것입니다 우리가 다룰 것이다하는 형태 너희들에 대한 관련 일부 항목을 참조하십시오. 그리고 월요일과 화요일 밤 8시부터 11시까지 그 주의, 우리는 근무 시간이 될 것입니다. 그 근무 시간 것입니다 가장 가능성, 그냥 와서 더있을 조교에게 대한 당신의 질문을 당신이에 대해 혼란스러워 어떤 개념, 그들은 종류의 당신과 함께 갈 거예요 퀴즈 및 검토 개념. 퀴즈 0, 당신은에 있다면 월요일, 수요일 섹션, 중 수요일이 될 것이다 수업 시간 수요일에 그 수업. 그리고 당신은에있어 다음 경우 화, 목 부분, 목요일에 수업 시간도있을 것입니다. 당신은 정말 선택할 수 없습니다 어느 당신이로 이동합니다. 당신은 월요일, 수요일 인 경우에, 당신은 수요일로 이동합니다. 당신은 화요일, 목요일에 있다면 당신은 목요일로 이동합니다. 하지만 그날 밤, 우리 사랑스러운 직원됩니다 파티를 등급 거대한 퀴즈를 이는 우리는 당신에게 다시 점수를 얻을 수 있습니다 그날 밤. 어떤 때? 불분명, 누가 알 겠어,하지만 것 24 시간 내에 다시 만나 그래서 희망 너희들 금요일까지 어떤 의견을 가지고있다. 그리고 우리는 정말 엉뚱한 주에 있습니다. 그래서 pset5는 중 하나입니다 올해의 가장 어려운하여 pset. 그래서 미안 사람. 우리가하려고하는거야 이렇게 우리가 할 겁니다된다 일부 실제 지원하는 주말. 왜냐하면 너희들은,를 볼 수 PSET 가을 방학 전에 때문이다. 우리를 지원하지 않습니다 가을 방학 동안 너희들 그래서 우리 정말 종류의 문구하려는이 같은, , 이제와 이상이하자 의 정말, 정말 열심히 일하자 이 다음 2 주,이 퀴즈를 얻을 수 과 함께 할 두 psets를 추가 다음 사람은 좋은 휴식이 CS에 대해 생각하지 않고 칠일. 그에 대한 순서에 따라서 , 일이 우리는 아마 내 섹션을 이동하는 것 일요일 오후에. 그것은 너무 촬영됩니다 없음 걱정이 올 수 없습니다. 그러나 온라인 촬영은 것 거기에 액세스 할 수 그래서 너희들 일요일이 있는지, 월요일, 화요일은 pset5에서 작동합니다. 그리고 그것은 가을이다 다음 중단하지 않고 CS 및 우리는 다시 와서 갈기에 그 뒤로. 그러나이 될 것 가을의 휴식을위한 아름다운 일주일 우리는 정말 스트레스로 만들고 싶어 가능한 한 모든 사람들에게 무료로하는 우리가 이동하는 이유 PSET가 원인 일 것입니다 후 가을 휴식보다는 전에. 내 말은 그게 ..., 나는 종류의 느낌 때문에 는 데 목적을 패배처럼 만약 거기에 가을 휴식 후 마감 가을 방학 동안 어쨌든 지원하지 않습니다. 그래서 내가 생각하는 rather--의 우리는 오히려 지금에 초점을 맞출 것입니다. 누군가가 질문이 있습니까 그 일정은 어떻습니까? 아무것도 혼란? 그래. 청중 : 우리는 여전히이 있습니까 21 일 강의? ANDI 펭 : 네. 21 일 그래서,이있을 것입니다 하버드에서 살고있는 강의. 다윗이 촬영은 나도 몰라 그것은 또는, 그가 실제로 강의 있다면 하지만 사용할 수있을거야 액세스 너희들을위한 온라인. 그래서 당신이 개척 확인 가을 방학에 어딘가에 시간 밖으로 그래서 너희들은 잡을 수 있습니다 그 강의 최대. 그래? 청중 : 네. 죄송합니다. 여기 couple--있어 ANDI 펭 : 아니 걱정. 여기에, 몇 가지 사탕을. 청중 : 이봐, 나는 그것을 붙 잡았다. 그래서 그냥 내일, 정리해 만에 그 후 수요일, 우리는 퀴즈가 있습니다. ANDI 펭 : 올바른. 청중 : 그리고 이따가 것 퀴즈의 형식은 무엇입니까? ANDI 펭 : 오. 그래서 우리는 이메일을 보내드립니다 그 깊이에 모든 것을 더 포함한다. 그러나, 본질적으로, 단지 커버 기본 주제는 이미 적용 학기 상반기에. 우리는 검토 세션과 질문이 있습니다 그리고 그것에 대해 너무 걱정 답변. 그러나 우리는 너무 이상 갈 것. 청중 : 그것은 될 것입니다, 우리 우리의 컴퓨터 코드를 가지고 ... 이렇게 ANDI 펭 : 아니오. 그것은 쓰기 너희들이 될 것 손으로 질문에 대답. 청중 : 아. ANDI 펭 : 그래서 우리는주지 밖으로 관행 및 물건 그래서 너희들은 아마도 이동 할 수 있습니다 다시 손으로 마리오를 다시 작성 단지 반드시 사람이 가지고 있는지 확인하기 그 작업을 수행하는 방법에 대한 아이디어. 때로는 때 때문에 당신은 당신 손으로 쓰기 세미콜론과 물건을 잊지 그것은 정말 나쁜입니다. 청중 : 그 [들리지]되지 않습니다? 마찬가지로, 당신은 있어요 your--에 세미콜론 ANDI 펭 : 그렇기도하고 아니. 우리는 깊이에 더 얘기하자 퀴즈 레이아웃이 얼마나 관련 어떻게 우리는 학년에가는거야. 그러나 본질적으로, 바로 알고 일반적인 형식은 당신이 될 것입니다 사람은 code-- 해석 중 기본적인 질문에 대답. 내가 당신을 묻는다면, 라이브러리는 무엇인가? 너희들은 알아야 할 도서관을 수행하고를 기록합니다. 아니면 내가 프로그램을 작성, 말할 수 안녕하세요 화면에 출력한다. 주요 너희들 작성합니다, INT 무효의 printf 안녕하세요 세계 세미콜론. 그래. 청중 : 그래서 않을거야 어디서든 할 수 [들림] 문제의 난이도 설정? ANDI 펭 : 아니오. 아니. 우리는 그래 won't--. 전체를 쓰기 15 20 분의 게임은 이동합니다. 아니, 그렇게되지 않습니다. 아니. 청중 : OK. 그래서 수요일입니다. 그 주 또한 우리시 가장 어려운 문제는 설정? ANDI 펭 : 아니오. 따라서 문제는 의한 설정 가을 방학 전날. schedule-- 이메일 실제로 발송 된 분 전이 모든 관련. 그래서 너희들은 당신의 이메일을 확인합니다. 그것은있을 수 있습니다. 그래. 걱정 마. 쿨. 에 관한 모든 질문이 공지 사항, 등급, 퀴즈, 우리는 오른쪽으로 다이빙을하기 전에 소비하는 포인터 우리의 섹션 대부분의 시간 오늘? 쿨. 괜찮아. 그래서 한 너희들은이 모든 lovely--을보고 나는 그들이 그것을 부르는 모른다. 일이 어디 클레이 메이션은 자신을 폭발 그것 때문에 제대로 포인터를 사용하지 않았다. 글쎄, 당신의 프로그램은 것입니다 당신이 경우 아마 자신을 날려 제대로뿐만 아니라 포인터를 사용하지 마십시오. 그래서 우리는 할거야 확인이 발생하지 않습니다. 우리가 갈거야 오늘 일부 포인터 재미를 할. 나는 일을 통해 갈거야 원활 내가 생각하는 작은 시간 내에 가능하다. 그러나 다루 너무 많이있다 난 정말 너희들 원하는, 당신이 뭔가를 이해하지 못하는 경우, 다만 것은 나를 계속하자. 그렇게하지 ​​않으면 때문에 무언가를 이해하고, 당신은 아마하지 않을거야 나는 그 후하는 말을 이해합니다. 그래서 저를 중단하고 질문을하시기 바랍니다. 모든 종류 때문에 의 함께 눈덩이. 마찬가지로, 포인터로 이어질 다른 것들에 메모리 리드. 그래서 당신은 포인터를 이해하지 못하는 경우, 저를 중단하고 우리는 그것을 알아낼거야 생활은 잘 될 것입니다. 쿨. 어떻게 강의에 너희들의 많은, 다윗이 포인터를 언급 할 때, 당신의 뇌는 종류의 젤리로 변신? 그래. 좋다. 우리가하려고하는거야 드 젤로 당신의 두뇌를 오늘. 우리는 정말 체계적거야 정확하게 포인터가 무엇인지를 통과, 그렇습니다, 우리는 어떻게 사용 무슨. 그래서 모두가 그렇게 pointers-- 일반적으로 변수 우리는 같은 코딩에 사용하고 이러한 정수 또는 문자열로 변수 또는 수레, 그들은 모두 본질적으로있어 자신에게 할당 된 값 뿐만 아니라, 어드레스 그 값을 가리키는. 그래서 나는 지금이 권리를 그릴거야. 우리는 거의 분필이 없다하지만 괜찮아요. 그래서 예를 들어, 일반적 우리가했습니다 방법 변수를 사용하고 우리가를 만들 수있다 int 형의 변수의 이름,하자 그냥 말해. 그래서 여기에 우리가 INT의 X있어 우리는있어 50 그 INT를 초기화. 그래서 여기에이 메모리 블록에있는 우리의 우리는 컴퓨터 (50)의 번호를 저장했다. 포인터가 놀이에 와서 어디 그래서입니다 당신의 컴퓨터는, 여기에, 같은 itself-- 물리적으로 하드 드라이브에 내 computer--의 RAM에 그것은 단지 한정된 메모리 양이 있습니다. 당신은 물건을 보관 유지할 수 없다 사물의 상단에 사물의 상단에 그리고 그들 모두를 가지고있다. 그래서 방법 우리는 동적으로 충당 그 메모리는 우리가 원하는 것을 저장 할 수 액세스는이 포인터를 갖는 것입니다. 그래서, 바로 당신의 메모리 공간에서 상상한다. 이의 RAM 인 경우 컴퓨터, 당신은이 작은 비트를 가지고 블록 또는 바이트 메모리 또는 이건 그냥 조금있다 which-- 밖으로 할당 된 블록 컴퓨터의 하드 드라이브 또는 RAM, 이들 각 블록 내의 당신은 다른 일을 저장할 수 있습니다. 그래서 예를 들어, 일 이 예에서는 배열 여기에 1 바이트입니다 8 비트 구성. 수에 따라 변경 컴퓨터의 운영 체제입니다. 예를 들어, 얼마나 많은 당신이 64 비트 운영 대 32 비트 들어 시스템? 정확히. 그래서 모두가 말의 memory--이다 그런데 그 컴퓨터가 메모리 관리가 다르다. 정말 왜 어떤이다 이해하는 것이 중요합니다 왜 메모리 자체의 기능보다는 보다 숫자에주의. 그래서 우리는 정말 상관 없어 방법이 배열 큰 우리가 상관 할 필요가있다 얼마나 큰 우리가 될 int를 필요로 하는가, 얼마나 큰 DO 우리가 문자열이 필요합니다 로, 포인터가 얼마나 큰? 그래. 그래서 많이 될 것 무거운, 고밀도 정보를 제공합니다. 나는 너희들을 줄거야 여기에 몇 코믹 릴리프 순간. 너희들은 모두 할 수 있어야한다 지금을 이해합니다. 우리는 것을 알고 있기 때문에 포인터는 주소입니다, 그 변수는 다릅니다. 그래. 쿨. CS 농담 그래, 최선입니까? 그래서 우리가 갈 길 포인터를 만드는 방법에 대한 구문의 매우 구체적인 일종이다. 어떤을 만드는로 변수의 종류, 그것의 특정 될 것 우리가 그것을 만드는 데 사용하는 구문. 그래서 어떤 포인터를 선언 할 때, 포인터는 essentially--입니다 나는 중요한 생각 포인터의 일부이며 변수가 가지고있는 반면 어드레스 값과 둘 포인터가 주소입니다. 그 값은 주소입니다. 그래서 저장된 주소입니다 다른 주소에서. 그 어떤 의미가합니다. 우리는 자세한 내용이 이상 갈거야 하지만 일반적인 형태이다 프린터가 저장되는 방식의 why--의. 그래서 당신은 포인터를 만드는 방법 데이터의 모든 유형을하는 것입니다 포인터려고하고있다 참조 할 수 있습니다 then-- 다음 star--과 함께 포인터의 이름. 그래서 여기, 경우 우리는 원 포인터를 만들려면 그 정수 향해 지적, 그리고 우리 포인터의 이름이 X가되고 싶어, 우리는 INT 스타 X를 할 것이다. 그래? 청중 : 그래서 경우 다음 줄 당신에게 INT의 X를 수행 할 INT 스타 X (X)의 위치를​​ 나타내는 당신은 나중에 정의하는거야? ANDI 펭 : 정말 좋은 질문입니다. 우리는이에 갈 거예요 부부는 나중에 슬라이드. 그래. 그리고 다음과 같은 일 숯과 같은 일 수레. 다만이 시점에서 알고 우리는 포인터를 만들었습니다, 우리는 실제로 설정하지 않은 아직 아무 것도 동일합니다. 우리는 실제로 그것을 언급하지 않았습니다. 같은 일이 여기에 당신은 변수를 생성, 당신은 변수의 이름을 만들었습니다, 당신은 실제로에 값을 설정하지 않았습니다. 여기에 같은 일이. 그래. 그렇다면 우리는 포인터에 값을 설정합니까? 그것은 참조와 역 참조에 의해입니다. 그래서 길을 우리가 참조 할 수 본질적으로, 포인터 varia-- 우리는 메모리에 주소를 반환 어느 변수가 저장됩니다. 내가 pointer--이 있다면 내가 그릴 거 야 그래서 이 한 번 우리는 다음 슬라이드에 도착 그러나 다만 본질적으로 알고, 앰퍼샌드 그리고 - 그리고 variable-- 모든 당신에게 주소를 알려됩니다 않습니다 어디의 무엇인가가 저장됩니다. 그리고 역 참조 반대 바로 스타 인 그,의. 별은 당신에게 실제를 제공합니다 해당 어드레스에 저장된 데이터. 그래서 하나는 당신에게 주소를 제공합니다 어드레스에 저장된, 다른 하나는 당신에게 실제를 제공합니다 주소에 저장된 값. 그래서 그들 중 두 사람은 줄 당신이 다른 것. 다시 한번, 슬라이드는 모든 온라인 너무 걱정하지 너희들은 복사 할 수없는 경우 시간이 아래로. 그럼 살펴 보자 여기에이 예에서. 그래서 우리는 거대한있어 여기에 메모리 어레이, 오른쪽? 우리는 단지의 블록이 어디 메모리의 메모리 또는 바이트, 있는 우리는 다른 일을 저장할 수 있습니다. 그냥이가있는 가정 해 봅시다 메모리에 주소를 가리 킵니다. 그래서 언제든지, 당신은 - 0X를 참조 모든 것을 당신이 있다는 것입니다 말하고있다 즉, 16 진수입니다. 너희들은 모든 숫자는 알다시피 다른 기지에 기초 할 수있다. 자료 (10)는 어떻게 일반적으로 번호를 해석한다. 이진베이스 (2)는,도있다. 이 경우, 16 진수 기본 16입니다. 이 말을 단지 다른 방법 10-- 제로 또는 0에서 9 개의 다음과 같은 A, B, C, D, E, F. 또한 다른 번호를 참조합니다. 다윗은 간단히 강연이 비켜갔습니다. 너희들 경우 혼란, 그냥 구글. 배울 수있는 정말 쉬운 방법이있다 16 진수가 무엇인지. 모든 그건 정말 관련이 지금 당신을 위해 사람은을 알고 C에서 16 진수 얘들 아 이야기 일반적으로 그 이 포인터의 수 있음을 알려줍니다. 또는 그 주소입니다. 그래서 여기에이 예에서, INT는 × 5 같습니다. 우리는 integer--을 만드는 유형의 미안 변수 정수 우리는 5로 초기화하고 있습니다. 그래서 여기에 우리의 메모리 보드에, 우리는 할 수 참조 그 X는 0x0으로의 주소입니다 당신이했습니다 값 이 5의 내부에 저장된. 즉 이해한다 모든 사람에게, 오른쪽? 그래. 그리고 우리가 무슨 짓을했는지 코드의 두 번째 줄에 우리가 만든 것입니다 int 형의 포인터. 그건 무슨 INT 스타 포인터를하고있다. 그리고 그와 같 앰퍼샌드 X 당신이 뭔가의 주소를주고있다. x의 주소에 따라서 이 예는이 0x0입니다. 그리고 그 주소가되고있는 그 포인터에 저장된다. 그 모두에게 의미가 있습니까? 그래서이 항아리의 생각 여기 pointers-- 생각 예일에서 우리는 PO 상자 시스템이 모든 학생은 메일 링이 어디 당신이 갈 수있는 곳 해결 LW의 지하에 당신은 그냥 가서 잡아 수 당신이 무엇을 해당 주소에서해야합니다. 같은 일이 일어나고있다 여기에 컴퓨터. 이러한 메모리 바이트를 가질 수 당신은 정보에 저장할 수 있습니다 하지만 위해 것은 알고있는 정보 조각 당신이 찾으려고하는지 매치까지 그리고, 당신은 포인터를 필요로하는 곳에 그 어떻게 거기에 갈 방법을 알려줍니다. 그래서 예를 들어, 나를 위해, 내 PO 상자, 나는 특정 다섯 자리 숫자가 있습니다. 그건 내 주소입니다. 그래서 물리적 메모리에 갈 수 있습니다, 나는 주소를 볼 수 있습니다 그 PO 상자에 갈 수 내부 데이터에 액세스 할 수 있습니다. 그 모두에 의미가 있는가 컴퓨터가 본질적으로 똑같은 일을하고. 그래서 모든 포인터가하고있는 것입니다 그것은 단지 메모리를 만드는 것 및 메모리 데이터는 실제로 뭔가의 주소. 그럼 당신은 가서 그것을 찾을 수 있습니다. 모두 좋은? 지금까지 나와 함께 좋은 모두? 그래. 쿨. 괜찮아. 이전 그래서 거의 같은 일. 그래서 우리는 먼저, 변수가 라는 X하는 case-- 나는 5에이 값을 변경거야. 그냥 주소를 가정 해 봅시다 메모리에이의이 0x0입니다. 00. 좋아요. 그럼, 두 번째에 코드의 라인, 우리는있어 포인터를 만들 것 PTR 포인터라고합니다. 그리고 그의 주소,하자 단지 그 메모리에 0x01로 말할. 그리고 우리는 실제로 원하는 앰퍼샌드 store-- X는 당신에게 무슨 X의 주소를 제공합니다. 및 (X)의 주소 0x00으로했다. 그래서이 포인터 지금 실제로 주소를 가지고 무슨 X의 값으로 저장됩니다. 지금까지 나와 함께 모두? 쿨. 그리고 나서, 그 방법 우리는 그것을 복사합니다, 우리가 선언하고 초기화 할 경우입니다 int 형의 메모리의 또 다른 블록. 권리? 이 INT 것입니다. 그것은 복사를 호출 할 것이다. 그리고 그렇게이거나 먹어거야 스타 포인터는 당신을 제공 그 주소에서 실제 데이터. 앰퍼샌드는 당신에게 주소를 제공, 별은 당신에게 데이터를 제공합니다. 포인터에 따라서 데이터. 이 포인터는 5 가리키고 있습니다. 그리고이 기능 스타 here-- pointer-- 간다에서 무엇이든 얻을 수 이 블록 여기에 저장합니다. 모두 무슨 일이 있었 방법에 대한 명확한? 그래서 두 사업자 권리 ... 이렇게 앰퍼샌드와 star-- 그냥 다른 일을 포인터에 사용되는 경우. 하나는 당신에게 주소를 가져, 하나 당신에게 실제 값을 가져옵니다. 그래서 너희들이 때 확인 당신이 두 가지를 혼동하지 마십시오 코딩 그들은 매우 다른이기 때문에. 여기서 우리는 0x01로의 좋은 예있다. 그건 정말 좋네요 소수의 기억합니다. 실제 컴퓨터에서 당신은 할거야 뭔가가 거대한 엉덩이 번호 그뿐만 좋은하지 즐거운입니다. 그것은 어떤 쓰레기 값이 될거야. 그리고 그것은 정말거야 정말 엉망 프로그램을. 그것은 매우 중요합니다 지금 우리가 가지고 같은 why--에 대한 아래로 기초, 물리적 때 무슨 일이 당신은 코드의 해당 블록을 실행하고 있습니다. 그래 Everyone--? 청중 : INT X는 INT의 사본을 동일 그래서? ANDI 펭 : 아니, 때문에이 경우, INT에 x-- x--의 값은 바로, 5에 해당? 그리고 INT 사본 5 같습니다. 그래서 당신이 인 경우에 그들을 동일시하는 서로가 정수이기 때문에, 네, true로 평가합니다. 그러나 그들은 메모리에 문자열처럼한다면 다윗이 예 동안했던 일, 그 다른 왜냐하면 그들은 참조하고 메모리에있는 장소의 주소 그들은 거짓으로 동일시한다. 당신이이기 때문에 그것은 사실이 될 것입니다 여기에 그래서 직접 integers-- values​​-- 비교 하지만 다른 사람에 당신이있어 참조 점. 문자열, 배열이기 때문에 all-- 우리는이 later--에 대해 얘기하자 그러나 배열은 본질적이다 메모리에 문자 한 무리의 포인터. 그래서 사람들은 조금 다르다. 그러나이 경우, 예, 당신은 그렇게 할 수 있습니다. 청중 : 당신은 설명 할 수 복사본의 주소? ANDI 펭 : 네. 그래서 그냥 ... 내가이야 값을 기입하지 않았다 하지만 다른 단지 어떤 임의의 우리는 걱정하지 않는다 쓰레기 값입니다. 당신이 프로그램을 시작하면 때문에 당신은 우리가 실제로하지 않는 것이 실현 정말 무슨 상관 실제 주소입니다 우리는 알 필요가 무슨 일이 주소에있다. 그래. 청중 :에 int로 다음 스타 두 번째 줄, 즉 다른 than--이다 ANDI 펭 : 네. 청중 : 고마웠다 역 참조 스타를 참조? ANDI 펭 : 네. C--의 저자 그래서 누구든지 의 언어를 쓰기로했다 C-- 아주 똑똑하지 않았다. 그들은 노력에 아주 똑똑하지 않았다 우리는이 작업을 수행해야하는 이유를 알아낼 수 있습니다. 그것은 나를 있었다면, 나는 확실히 것 두 개의 서로 다른 문자를 사용합니다. 그러나 그들은 같은 하나를 사용하기로 결정했다. 그래서 INT 후 스타, 즉, 컴퓨터를 알려줍니다 당신은 포인터를 만들에 대한 걸. 하지만 당신은 역 참조하려는 경우 뭔가 ... 즉, 주소로 이동 당겨 somewhere--의 데이터 별 다르게 사용된다. 그래서 너희들은 조심 하지 두 개의 용도를 어지럽히. 쿨. 그래? 청중 : 그래서 단지에 반복 내가 following-- 해요 있는지 확인 ANDI 펭 : 모두 괜찮아요. 청중 :의 왼쪽 --in 해당 슬라이드, 우리는 우리가 알고있는 일을. 우리는 정수를 선언 [들림] 5 동일하다고. ANDI 펭 : 네. 청중 : 네. 그리고 우리는 INT 스타 일을 가지고 그 확인, 종류의 우리를 좋아 말한다 지금, 정수를 선언 우리는 포인터를 선언하고있다. ANDI 펭 : 올바르게. 올바른. 청중 : 오른쪽? 그리고 우리의 포인터가 PTR입니다. ANDI 펭 : 그래. 포인터의 이름은 PTR입니다. 포인터. 청중 : 그리고 다음 단지 C를 알려줍니다 NX와 동일 그 값에 액세스하기를 원하는 값이 정수 X x-- 정수 지정되었다. ANDI 펭 : 조심 앰퍼샌드 실제로 X 때문에 얘들 아 컴퓨터를 알려줍니다 당신을 x가 무엇의 주소를 끌어합니다. 그래서 앰퍼샌드는 당신에게 제공 주소, 별은 당신에게 가치를 제공합니다. 청중 : 그래서 우리는 주소를합니다. 의 X가 at--했다 가정 해 봅시다 ANDI 펭 : 우리는 실제로 바로, 무슨 X 알아? 우리는 난 전 ... - 그 X를 알고 있기 때문에 이 만드는하지만 그냥 가정 해 봅시다, 임의로, 이것은 × 00이었다. 권리? 그래서 우리는 주소가 0x00으로 알고, 그래서 우리가 가서 앰퍼샌드 X 할 때, 우리는 알고 × 00로 평가해야합니다. 어떤 우리가 저장 이유 우리의 포인터 값 등. 말이 돼? 청중 : 네. 복사는 역 참조 ptr--로 이동 ANDI 펭 : 오른쪽. 청중 : 실현합니다입니다 우리가했습니다 포인터 우리에게 말한다 선언 정수 X의 주소입니다. ANDI 펭 : 네. 청중 : 그리고이 한 경우는, 스타 PTR입니다 5 동일 X의 값과 동일. ANDI 펭 : 올바른. 청중 : 쿨. 그리고 그것은 얻을 수있는 간단한 방법입니다 그 또는 유일한 way-- 그 ANDI 펭 : 그래서 지금 당장 우리에게 매우 논리적하지 않는 것 일이 모든 시간을 보내고 이 슈퍼 복잡한 일 때 모든 우리는 단지 두를 만들 수 있습니다 했어 (5)의 값을 갖는 정수, 오른쪽? 그것은 이해가되지 않습니다. 그러나 일단에게 우리가 갈 거예요 메모리 할당 그리고 - 우리는거야 이 될 수있는 이유를 통해 이동 편리하고 유용한 나중에. 나는 우리가하지 않는 말할 때 날 믿어 당신이 임의의 함수를 만들 우리가이기 때문에 사람은 배울 수 당신과 함께 엉망하려고합니다. 이 사실의이 모든에 사용 사물과 우리는 그들에 대해 이야기합니다. 청중 : 신난다. ANDI 펭 : 네. 청중 : [들림]. ANDI 펭 : 좋은 질문입니다. 청중 : [들림]. ANDI 펭 : 그것은 아니다. 정말 없습니다. 청중 : --two 변수 그 또한 동일한 [들림]. 그래. ANDI 펭 : 네. 그래. 내가 이동하기 전에, 모든 사람이 분명하다? 난 당신이 늦게 비트에있어, 테일러을 알고있다. 괜찮아요. 그것은 온라인입니다. 당신은 처음 20 볼 수 있습니다 분, 모든 좋은 것입니다. 그래. 쿨. 괜찮아. 그래서이 본질적으로 가지 우리가했던 비슷한 일. 그냥 그래픽 형식입니다. 당신은 무엇을 추적 할 수 있다면 다만 일, INT X는 5와 동일 우리 모두는이 시점이에서 수행 한 int 형의 x라는 변수를 만듭니다. 우리는을 저장하는거야 그것의 (5) 내부의 값입니다. 우리가하지 않았기 때문에 어떤 포인터가 없습니다 실제로 권리, 아직 포인터를 만들어? 그리고 다음을에서 라인, INT 스타 포인터, 우리가 실제로있어 곳이다 물리적 포인터를 만드는 우리는 설정하는 또는 참조 동일 앰퍼샌드 X에 대한 포인터. 어느 곳 어디에서이다 기억이 될 일어났다. 사실 귀찮게하지 않았다 값이 시간을 만들기. 그러나이 경우에는, 그 시점 당신은 동일한 것입니다. 그리고 거기, 스타 포인터 역 참조이다. 우린 곳이다 정보 당기는. 그래서 X에서 그 값은 실제로 (35)와 동일 할 것. 이 시점에서 그래서, 우리는 본질적으로했습니다 그냥 35에 X를 다시 초기화 실제로 X를 터치하지 않고. 그냥 포인터를 통해 즉, X를 가리키는했다 우리가 실제로 무엇 X 변경할 수 있습니다. 나뿐만 아니라이를 그릴거야. 그래서 여기에 우리가 만든 여기에 몇 가지 임의의 주소입니다. 그냥 다시 × 00을 가정 해 봅시다. 그냥 그 주소의 가정 해 봅시다. 그리고 우리는 정수라는 이름의 X를 만들었습니다 내가 할당 한 값은 5입니다. 두 번째 행에서 int로 pointer-- 그래서 지금 우리는했습니다 이 두 번째 일을 가지고 여기 pointer--라고 우리는 그냥 가정 해 봅시다 이러시면거야 그것은 다른 임의의 메모리 주소입니다. 그래서 우리는이를 설정하는거야 무엇이든 동일한 그였다. 그리고이 포인터에 가고 x의 값으로 가리 그리고, 우리는 변경하는 경우 짓이야 우리가 스타 포인터를 할 경우, 그 것 우리의 포인터의 값입니다. 이 경우에, 추적 것 이 X의 값이 위에 화살표 그리고 35로 변경하는 것입니다. 효과적으로, 우리는 단지 변경 X를 터치하지 않고 X. 단지 참조 포인터를 통해, 우리는 가서 x의 값을 변경할 수 있습니다. 말이 돼? 그래서이 방법으로, 우리는 실제로 이름을 바꿀 수 있습니다 그리고 다시 변경 및 재 할당 값 우리가하지 않았다 것들 실제로 자신을합니다. 그 모두에게 의미가 있습니까? 쿨. 그래. 여기 그래서 복잡한 그래픽입니다. 라인으로 라인을 이동합니다. 본질적으로, 단지 정확한을 난 그냥 한 같은 일. 나는 이동하기 전에, 나는 정말 만들고 싶어 모든 사람이에 정말 분명하다. 여기 그래서, 우리가 가지고있는 코드입니다 INT의 3에 해당, B는 4와 동일, C 5 같습니다. 그래서 우리라는 이름의 세 가지 정수를 만들었습니다 A, B 및도 3, 4 및 5와 동일하다 하였다. 그리고 우리는 세 가지 포인터를 만드는 이들 각 변수를 가리키는. 그리고 지금 우리는거야 본질적으로 이상 이동 당신이 그들에 작동 할 때 어떤 일이 발생. 그래서 그들을립니다. 그렇게하지 ​​paper-- 한 장을 가지고 너희들은 모든 용지를 알고, 하지만 당신의 그 아마, 그렇지 못한 할 분들을 빌려. 종이의 시트를 가지고 과 라인으로 라인을 이동합니다. 그리고 당신이 할 모든 작업에서, 나는 너희들이 실제로 쓰는 할 이 시점에서 A, B 및 C는 무엇. 주소가 무엇인지 그리고 무엇을 A, B와 C를 가리키는 포인터 이 지점에서? 그리고 희망이 가지 너희들 단계 것 포인터에 대해 생각하는 방법을 통해. 우리는 이동하지 않을거야 그들 모두를 통해. 어쩌면 당신이 five--주지 같은 삼분. 처음 몇에서 시작하세요. 오. 죄송합니다. 청중 : 두 번째 줄에서, 왜 스타 [들리지] 변수 아닌가요? ANDI 펭 :에 기억 운영자, 첫 주에, 우리는 방법에 대해 이야기 당신이 플러스 등호 할 경우, 그건 그냥 더하기 C와 동일한 의미한다. 이 case--에서 그래서 이것은 또 다른입니다 별이 사용할 수있는 방법입니다. 참조 이외에 포인터를 선언, 또한 기억 곱셈을 의미한다. 이 경우, 그것은 단지 좋겠 이 번 C와 동일합니다. 그건 그냥 다르다 그를 작성하는 방법. 청중 :이 배 C와 동일합니다. ANDI 펭 : 네. 청중 :이 경우 무엇을 의미 하는가 그것은 앰퍼샌드 문자를 말한다? ANDI 펭 : 앰퍼샌드 수단 당신은 당신이있어 that--거야 포인터가있는 장소로 이동 가리키는 주소를 당기는. 그래서 앰퍼샌드는 당신에게 주소를 제공, 스타가 당신에게 실제 값을 제공합니다. 청중 : 우리는입니까 라인으로 라인 구축? ANDI 펭 : 당신은 라인으로 라인 구축. 그래서 단지에 하나의 라인을 이동 시간과 then--을 에 대해 걱정할 필요가 없습니다 모든 일을 마무리. 의를 통해 얻을 해보자 어쩌면 두, 세 줄 그리고, 우리는 소집이 완료됩니다. 너희들이 손실되는 경우 그것은 완전히 확인합니다. 이것은 정말 어려운 개념이다. 너희들은 클래스 걱정하는 경우 다윗이 말하는 것처럼 이렇게되면, 그렇지 않습니다. 우리는 도달하고 어려움의 개념 피크 그리고, 그것은 것 우하향합니다. 그래서 사람은 거의 없습니다. 우리는 사탕 많이 얻을 수있다 혹 통해 너희들. 나는 가을 이후 거의 생각 우리는 혹을 통해 알 수있을 것입니다 휴식 인생은 다시 잘 될 것입니다. 전혀 그렇게 걱정하지 않습니다. 괜찮아. 나는 사람들에게 20 줄거야 더 초 마무리합니다. 그래. 괜찮아. 의이에 찔러 보자. 너희들 같이하는 것은 나에게 답변을 제공 난 그냥 직접 입력거야. 희망 우우 내가 할 수 있습니까? 나는 실제로 그것을 입력 할 수 없습니다. 나는 칠판에 그릴 수 있습니다. 그래서 여기이 첫 번째 줄에 우리는 a가 b의 스타 C와 동일합니다. 또한 엘리엇 제기 정말, 정말 좋은 점. 나는뿐만 아니라 그것을 잊고 있기 때문에 두 가지 방법으로 우리는 스타 기호를 사용할 수 있습니다, 세 번째 방법은 실제로있다. 곱셈. 그래서 그냥 때문에 혼란스러워하지 않습니다 그 스타를 사용하는 첫 번째 방법입니다. 그냥 컴퓨터를 말하고 나는 포인터를 만들려고 해요있다. 수행하여 두 번째 방법 포인터의 스타, 그것은 당신이 원하는 포인터를 알려줍니다 그 포인터에서 데이터에 액세스 할 수 있습니다. 그리고 나서, 물론 거기 단순한 곱셈 두 숫자 사이를 알려줍니다 나는 두 가지를 곱하도록. 그래서 많은 방법이있다 우리는 스타 기호를 사용할 수 있습니다. 혼동하지 마십시오. 그냥 너희들을 알고 있어야합니다 정확히 그 중 세 하고있다. 이 첫 번째 줄에 따라서 A는 B의 배 C와 동일합니다. 그럼 통해 가자 무슨 A는 C는 무엇인가, B 무엇입니까? 그리고의 포인터는 무엇인가 ㄴ에 대한 포인터와 C에 대한 포인터? 같게 그 모두는 무엇입니까? 그래. (3) 동일과 그래서 우리는 시작, B는 4와 동일, c는 바로, 5에 해당? 수, 그 첫 번째 줄 이후 그래서 누군가가 무엇인지는 말해? 그래. 바로 답변을 외치다 주시기 바랍니다. (20). 좋다. B는 무엇입니까? 청중 : 4. ANDI 펭 : C는 무엇입니까? 청중 : 5. ANDI 펭 : 예이. 좋다. PA, PB 및 PC는 무엇인가? 청중 : 000001 및 002? ANDI 펭 : 네. 트릭 질문의 친절 하지만 정말 여기 있기 때문에 실제 메모리를 받았다. 그러나, 때문에 예를 들어, 우리는하지 않습니다 실제로 그 숫자가 무엇인지, 우리는 앰퍼샌드를 말할 수있다. 내가 알지도 못하는 경우 나 앰퍼샌드를 그릴 수 있습니다. 그것은 그때 엔의 당신은 어떻게해야합니까? 청중 : 팔을 그리기처럼. ANDI 펭 : 팔처럼. 그처럼. 그래. 청중 : 빙고. ANDI 펭 : 그것을 죽이는. 그래서를 앰퍼샌드, 당신은 단지 그렇게 할 수 있습니다. 우리가 실제로 할 수 있기 때문에 관심이 그 무엇의 가치 이며, 약간 길다 엉덩이 값 어쨌든, 우리는 단지 giong 사용하는 앰퍼샌드 대답. 다음 (PB)은 무엇입니까? 청중 : [들림]. ANDI 펭 : 네. 쿨. 괜찮아. 쉬운 첫 번째 줄. 우리는이를 얻었다. 포인터는 쉽다. 괜찮아요. 두 번째 줄. 그래서 스타가 동일 동일 말 같은 것은 배 C와 동일합니다. 이 글을 쓰는 단지 쉬운 방법이다. 그래서 우리는 만들려고하지 않을 점 또는 여기에 아무것도. 그래서 첫 번째 라인으로 수행. 두 번째 줄에 무엇입니까 후에는이 배의 C에 해당합니까? 청중 : 100? ANDI 펭 : 그것은 100입니다. 좋다. 어떻게 나에 대해? 청중 : [들림]. ANDI 펭 : 어떻게 C는 어떻습니까? 청중 : [들림]. ANDI 펭 : 어떻게 포인터는 어떻습니까? 바로, 같은 있는거야 있습니까? 그래. 이제 세 번째 줄. 약간 까다. B 스타 PA 같습니다. 누군가가 먼저 말해 줄 수, 어떤 스타 PA가 동일합니까? 청중 : 그것은 값이다 그가에 저장합니다. ANDI 펭 : 맞아요. 그리고 값은 무엇인가 그가에 저장된? 청중 : 100. ANDI 펭 : OK. 그래서 이후에 어떻게 될 것 코드 행을 실행? 청중 : [들림]. ANDI 펭 : 나에 대해 무엇? 청중 : 100. ANDI 펭 : 네. 그리고 다른 모든 것들입니다 거의 변경되지 않은, 오른쪽? 우리가 그것을 터치하지 않았기 때문에. 쿨. 네 번째 라인. 약간 더 복잡합니다. 그래서 pc-- 다시 한번, PC는 포인터이다 즉 PA 동일 c-- 지적했다. 은 무엇인가? 청중 : 100. ANDI 펭 : b는 무엇입니까? 청중 : 100. ANDI 펭 : C는 무엇입니까? 청중 : 5. ANDI 펭 : PA는 무엇입니까? 관객 :을 앰퍼샌드. ANDI 펭 : PB? 청중 : 앰퍼샌드 (B). ANDI 펭 : 그리고 까다로운, PC는 지금 무엇입니까? 관객 :을 앰퍼샌드. ANDI 펭 : 예이. ~이 우. 너희들은 참조? 이것은 모든 권리입니다. 너무 나쁘지 않다. 그것은 모두가 아니다 있다면 우리는 더 많은 사탕을 바로,하지만 난 괜찮아 생각합니다. 그리고 우리는 하나의 이상 갈거야 우리가 열심히 사람들을 공격하기 전에 더. 대답은 내가 여기 있습니다. 기본적으로,이 것을 알고 바로이 시점에서 수학있다. 당신은 같은 간단한 방정식이있을 때 플러스 B, 배 C, 즉 쉽게 할 수 있습니다. 그리고 당신은에 확장 시작할 때 그것은 단지 작업의 순서를 이동합니다. 이전과 같은 것. 트랙을 경우 계속하여 별은 무엇인가 전에이다. 그것은 당신에게 값을 알려줍니다. 당신은 전과가있는 경우 무엇인가, 그것은 당신에게 주소를 알려줍니다. 그리고 당신은 할당해야 하나 포인터 또는 그 값. 그럼이를 통해 가자 마지막 진짜 빨리. 아니이 마지막, 죄송합니다. 사실, 너희들은 선택할 수 있습니다. 어느 너희들이 가고 싶어 세 남아 중 이상 우리는이 있는지? 나는 우리가 그렇게 할 수 있다고 생각하지 않습니다 우리가 라인으로 이동 할 수 있기 때문이다. 그래. 너희들은, 선택의 여지가 없어 하나를 마지막으로 그냥 세 번째입니다. 스타 PC는 B 곱하기 C와 동일합니다. 청중 : 스타 PB? 청중 : 스타 PB. ANDI 펭 : 죄송합니다? 청중 : 스타 PB. ANDI 펭 : 스타 PB. 오, 내 나쁜. 스타 PB는 B 곱하기 C와 동일합니다. 나는 사람들에게 당신에게 10 초 줄거야. 그냥 빨리 생각합니다. 이것은 우리가 그렇게해야한다는 것입니다 지금까지 무슨 일이 우리 후 발생 바로 그 다섯 번째 줄을 실행? 그래. 은 무엇인가? 청중 : 100. ANDI 펭 : 100. B는 지금 무엇입니까? 청중 : 500. ANDI 펭 : 좋은. 누군가가 설명 할 않는다 나에게 500이 왜? 나는 우리가 기분이 안 실제로 지금까지 B를 만졌다. 우리는 어떻게을 변경 관리 않았다 B 접촉없이 B의 값? 그래? 청중 : 때문에 스타 PB pb--의 값을 의미한다 ANDI 펭 : 맞아요. 청중 : 실현합니다는 B이다. ANDI 펭 : 맞아요. 그래서 여기에 우리의 그림에서, 우리의 포인터 (PB)은 실제로 오른쪽 가리키는 여기서, 이는 실제 물리적 B이다. 그래서 당신은 가서 경우 당신이 스타 PB을, 그건 포인터의 당신의 화살표를 따라 물리적 및 (B)의 값을 변화. 그래서 우리가 변경 B 한 이유 실제로 B를 접촉없이 500. 그리고 다른 모든 남아 우리가 접촉하지 않았기 때문에 같은. 즉 B입니다. 쿨. 그리고-- 청중 : 난 그냥 질문이 있습니다. ANDI 펭 : 그래? 청중 : 이후 we've-- 앰퍼샌드 C가 더 이상 없다, 그 앰퍼샌드을 의미 하는가 지금 같은 일에 리디렉션? ANDI 펭 : 그래. 그러니까 ... 청중 : 그래서 화살표 종류의 단지 그리고 - 이동 ANDI 펭 : 그래서 essentially-- 청중 : 우리가 access-- 수 없습니다 --now ANDI 펭 : --when 우리 나는 위조자 on-- 역 참조 C. 그것은 무엇인가? 세 번째 줄? 넷째. 네 번째 라인. 우리가했던 모든 본질적이었다 이 화살표를 변경 그것은 대신 향해 지적이있다. 청중 : 그래서 우리는 더 이상 C에 액세스 할 수 없습니다. ANDI 펭 :이 있던 경우에 정확한 수는, 당신은 그것을 액세스 할 수 있습니다. 하지만. 우리는 포인터가 없습니다 더 이상 C를 가리키는. 당신이 원하는 경우 생각 당신에게 그것을 액세스 다시합니다 다른를 만들 것 C에-지적 재 포인터 또는이를 역 참조 다시 지적했다. 그래서, 아니, 현재 지금, 세 포인터는, 그들 중 누구도 C를 가리 없습니다. 모두 좋은? 답변 온라인. 섹션 후, 가서 자유롭게 마지막 두 테스트 자신. 동일 개념, 단지 조금 까다 롭습니다. 그냥 논리를 따르십시오 왜 상황이 다른 것입니다. 그리고 힌트, 포인터는 우리가 사랑하는 주제 그들이이기 때문에 퀴즈에 포함하기 개념적으로 매우 도전. 그래서 나는 당신을 제안했다 사람이 모든 차트를 검토 또는 이와 유사한 개념을 슬래시 이 퀴즈 전에 다음 주에. 청중 : 실례합니다. ANDI 펭 : 그래? 청중 : [들리지] 최종 one-- [들림]. ANDI 펭 : 50,000? 나는 아래를 다시 수행해야합니다. 하지만 선을 생각 somewhere-- 전에, 당신은 거대한 C 값을 만들었습니다. C는이 거대한 것 같습니다 이는 100 배 (500)이다. 아니. 청중 : [들림]. ANDI 펭 : 예. 1 만 100 회 (100). 어느 10,000입니다. 그래서 다시 거기 당신이있어 B와 C를 승산. b--를 가리키는 포인터 그래서 500-- 배의 값은이다 할까 .. 청중 : [들림]. ANDI 펭 : 어쩌면 그 잘못입니다. 청중 : 아니, 아니, 그것은 아니다. [들림] C에서 포인터가 지금 할까 .. 가리키고 ANDI 펭 : 네. 그는 맞아요. 청중 : --it는 등호에 그것에서이다 times-- 그것은 C의 값이다. ANDI 펭 : 당신은 조금 말할 수 있습니다 비트는 크게 그래서 모든 사람들이 당신을들을 수있다? 청중 : C에서 그래서 포인터는 이제 포인트 의 포인터가 가리키는 데 사용 무엇을 이러시면 여전히 does--하지만 그들은 가리 오른쪽입니다 같은 일? 값, 그러나 그것은 새로 정의되어있다. 그리고 그의 시작 부분에 당신이있어 이전에 100 배 이라며 500 B의 값. 그리고 그 아무리입니다입니다. 50,000. 그들은 당신에게 그것을 재 할당하는지 C에서의 메모리 공간은 C에서 포인터 데로 인 가리키는. 그래서 당신은 50,000 수를 다시 정의하고 있습니다. ANDI 펭 : 그녀는 수 나를 위해 절을 가르칩니다. 다음 번에 ​​모든 당신입니다. 여기에. 여기에 대한 더 많은 사탕입니다. 당신은 그것을 위해 사탕을받을 자격이. 청중 : 나는 거의 그것을 붙 잡았다. ANDI 펭 : 당신은 거의 그를 붙 잡았다. 괜찮아요. 그래. 그러나 그녀는 정확하게 맞았다. 그래서 당신은 무엇을해야 나는 우리 생각 that--입니다 사실을 따라야한다 포인터는 이제 있음 다른 값을 가리키는. 그래서 value-- 죄송합니다, C의 포인터에 repointed. 그래서 우리의 번호를 모두 이동하는. 당신이 액세스 할 때 그리고는 이유 값이 달라,이 저장됩니다. 말이 돼? 그래. 쿨. 좋은 모두, 내가 이동하기 전에? 청중 : 당신이 갈 때 짓이야합니까 왼쪽 열에있는 행 아래로, 첫 번째 행은 제 2 열을 영향을 미치는가 다음과 같은, 그것은 all-- second--의 ANDI 펭 : 네. 그래서 난 그냥 입력 코드 상상 a가 b 번 C와 동일에, 별은 C와 동일합니다. 그냥 내가했습니다 상상 다만이 코드를 실행 나는 인쇄하지 않은 것을 이 모든 것들이었다. 내가 있다면 바로 첫 번째 인쇄 상단에있는 것, 그것은 여기에있을 것입니다. 나는 모두를 실행 한 후 경우 코드의 그 라인, 어떤이 값은해야 마지막 부분에 그입니다. 그래서 실제로 여기에 프로그램을 작성했습니다. 나는 모두를 수행하지 않은 곱셈. 그러나 단지 상상. 그래서 여기 난 그냥이 프로그램은 포인터를했다. 나는 당신이 확인 guys-- 경우 확대 할거야. 그래서 변수를 a, b, c를 만들었습니다. 나는 그들이 동일하게 설정 한 3, 4, 5, 나는했습니다 해당 포인터를 만들었습니다. 그리고 여기에 난 그냥 갈거야 즉 무엇을 인쇄합니다. 그래서 내가 그 실행 할 수 있습니다. 너희들 see-- 쓰레기를 수행합니다. 너희들은 어떻게 볼 수 있나요, B와 C는 그 값입니다 그러나 그들의 포인터는이 거대한 있습니다 우리가 걱정하지 않는 쓰레기 값? 그래서 실제로 연결한다면 모든 곱셈에 다음의 모든를 다시 인쇄 이것은, 그 밖에 실행할 것 그 하단에 무엇을. 너희들은 놀러 싶다면 실제로 물리적으로 코딩, 너희들은 그냥 그 모두를 연결할 수 있습니다. 코드는 온라인으로 다음 될 것입니다 값은 나중에 그에 인쇄해야합니다. 그리고 당신은 어떻게 포인터를 볼 수 있습니다 주소는 실제로 재 할당했다. 그래서 당신은 어떻게 볼 수 있습니다 C의 주소는 실제로이된다 의 주소이었다 무엇이든 동일합니다. 그리고 그들은 일치하는 것입니다 어떤 그 큰 수이다. 좋은 질문. 모두 괜찮아? 질문에 대한 하나의 마지막 호출. 그래. 괜찮아. 그래서 당신의 마음을 가지고 준비 불어 약간 더 비트. 배열은 실제로 단지 포인터. 즉, 그들이 모두이다. 그리고 문자열은 무엇인가, 기억 나? 또한 배열입니다. 그래서 문자열은 정말 무엇인가? 그들은 포인터 같아 더 많은 문자의 문자의 시작. 그래서 시작 단지 개념이다 서로의 상단에 빌드합니다. 그래서 why-- 당신의 강의에서 기억, 데이비드, 그는 그 비교를했을 때 INT 문자열 엄마 다음 뭔가있다 다른 문자열 엄마와 당신 서로 둘을 동일시하려고, 그들은 당신에게 다른 값을 제공합니다. 그건 문자열 때문에 자체는 값이 아니다. 그들은 모든 메모리 주소이다 char-- 그들은 문자와 배열의 배열이다 단지 포인터. 그래서, 본질적으로, 경우 다윗은 comparing--했다 나는이 모든 것을 삭제가 확인되는 경우? 다윗 강의의 경우 했다 엄마, 엄마와 동일 동일 우리에게 그 같은 일이 될 것으로 보인다. 권리? 그러나, 아래에서 컴퓨터 후드, 실제로 무슨 일이 그 문자열이며, 모든 것을 것은 배열입니다. ampersand--으로 또는, 죄송합니다, 마지막에 널 (NULL) 종료와 함께. 권리? 백 슬래시 0. 잘못된 백 슬래시. 그래서 모든 사람들이 모든 were-- 이 두 개의 문자열 were-- 크기 발로 배열입니다 엄마와 엄마의 편지. 그러나 배열 정말로 단지입니다 메모리의 특정 위치에 대한 포인터 그것은 당신이 당신의 배열을 시작 알려줍니다. 이 경우, 모든이었다 좀 쓰레기 값이었다 어떤 임의의 포인터. 그리고이 모든 것은이었다 다른 쓰레기 값입니다. 그냥을 0x200을 가정 해 봅시다. 그래서 당신은 동일한하려고 할 때 그들이 서로에 두 그들은 때문에 false로 평가 포인터를 addresses-- 그들이 were-- 것을는 달랐다. 당신이 있다면 그것은 다르다 반면 실제 정수 비교하려고. 당신이 compare--하기를 원한다면처럼 마지막 example--의 INT의에서 B로, 그들은 평가하는 것 참으로 엘리엇이 말한대로 그들은 있었기 때문에 저장된 정수 당신은 단지 값을 평가하고 있습니다. 여기에, 때문에 문자열 배열입니다 모든 배열은 포인터이다 그렇지 않은 이유입니다 서로 동일. 그래서 가지, 즉 그래픽을 혼란. 하지만 그냥 가정 해 봅시다. 우리는 크기의 어레이를 생성했습니다 2-- 0 0에서 인덱스 3, 1의 값을 1, 2, 도 2 및도 3은 그 안에 저장된다. 모든 배열 정말 의를 바로 보자, 여기 does-- 내가 포인터를 만드는거야 말 의 해당 배열에 의 값에 접근 이 배열의 첫 번째 인덱스. 그래서 여기가 0이 될 것이다. 권리? 모든 사람들이 어떻게 이해합니까 첫 번째 줄을 평가하는 것이? 좋아요. 그래서 당신은 초기화하기를 원한다면 그 이후 추가 값, 모든 우리는 재 할당되는 일을하고 있습니다. 따라서 0, 1, 2, 1. 그래서 한 번이 포인터였습니다 여기를 가리키는 모든 우리가하고있는 그것을 아래로 이동합니다. 즉 더하기 1이 무엇을하고 있는지입니다. 그리고 우리는 거기에 2를 넣을 수 있습니다. 우리는 하나에 3을 넣고 싶었다면 이후, 우리는이 포인터를 지울 것, 거기에 3을 넣어. 그 말이 모두합니까? 그래. 당신은 질문이 있었나요? 청중 : 그것은 [들리지]이 있어요 질문은, 어쨌든 그것을 말할 것이다. 나는 그것이 실제로 생각하지 않습니다 영어로하지만 ... 질문, 배열 동일 1은 의미가 있습니다. 우리는 확인처럼 제일 먼저입니다. 그러나 일 0 인덱스입니다 [들림] 배열은 0과 동일 첫 번째 자리를 나타냅니다. ANDI 펭 : 네. 그래서 실제로 내가 여기서 뭐하는거야 것은 내가 처음 인덱스에 액세스하고 있지 않다. 모든 나는, 그래서 우선 doing--했다 스타 배열이 어떤 역할을합니까 말해? 포인터 전에 스타는 어떤 기능을 수행합니까? 청중 : 그것은 포인터를 나타냅니다. 그건 당신이 포인터를 선언하고있다. 그것은 de-- ANDI 펭 : 그것은 어떤 수단을 역 참조 그것은 간다 실제로 값을 가져옵니다. 권리? 이 경우에 그래서, 당신은 싶어 값 여기에 그 1로 설정. 그래? 그래서 내가하지 ... 사실상 아니에요 정말이의 인덱스에 대한 관심, 내가 뭘 모든 단지 아래로 반복된다 배열 아래로 내 포인터를 이동하여. 그리고 결국 나는 오른쪽을 중지해야? 그리고 중지 방법 I는 공격의 경우에 있어서는, 문자열, 널 (NULL) 종료의. 내가 볼 경우 내가 back-- 충돌 있다면, 오, 알고 백 슬래시 0, 나는 이것으로 끝났어요 알고 나는 그 난 그냥 할 수있는 알고 를 반복 중지합니다. 정말 좋은 질문입니다. 그리고 우리는 정말 멀리 갈거야 이 다음 주에 깊이 때문에 것 조각 포인터의 사용량을 많이 포함한다. 그러나 바로 지금 알고, 그건 그냥 다른 more--이다 그것은 단지 다른 방법 컴퓨터가 본질적으로 작성 우리는 무엇을 해왔습니다. 다윗에 말했듯이 , 방법을 강의하는 우리 배열을 수행하여 그냥 액세스 배열 0, 브래킷 0, 우리의 경우 단지 첫 번째 값에 접근하고 싶었다. 모든 컴퓨터가 선회하고있다 그로 그 자체를 반복하는 그. 그래서 우리는 구문을 호출 그냥 설탕 사용자 친화적 말하는 멋진 방법 프로그램하는 방법을 아는 우리의 방법. 그러나 컴퓨터 아래에, 그것은 무엇을하고있어, 사실은 그냥 보내고 조정이야 포인터. 그러나 우리가 그것을 작성하는 방법, 그것은 우리를 위해 쉽게 때문에 의 관점에서 것들에 대해 생각하는 상자와 상자를 아래로 이동하는 방법, 브래킷을 갖는 것입니다. 죄송합니다, 즉, 정말로 정말 제대로 네하지만 .... 방법에 따라서 다음과 같습니다 관객 두 개의 문자열을 비교 그들은 서로를 동일 여부를 확인하려면? ANDI 펭 : 그래서 다윗이 쓴 강의에서이 프로그램 그래서 난 그냥 갈거야 신속하고 간단 이상. 당신이 그렇게 할 것입니다 방법 당신이 실제로 것입니다 가서 비교해야 addresses-- 또는 값 포인터에서 얻을. 어떻게 당신을 기억 여기에 값을 획득? 여기 주소에 대해 걱정하지 않는다. 난 사실을 어떻게합니까 무엇이든의 값이 여기에? 청중 : [들림]. ANDI 펭 : 맞아요. 그래서 당신은 별을 비교 여기에 여기에 스타 대. 그 동일하다. 그리고 당신은 아래로 이동합니다. 여기에 스타가되고, 여기에 동일한 스타? 그래. 그들은 동일한있어. 그리고 당신은 아래로 계속 당신은 둘의 끝을 칠 때까지. 그들 모두는 동일한 경우 당신은 당신의 문자열이 동일 알고있다. 및 C 실제로 가지고 함수를 호출하여 작성 문자열 컴포지션있는 실제로 단지 당신이 해달라고 그래서 '당신을 위해 수행 스스로를 작성해야합니다. 그래? 청중 : 나는 강의에 생각 우리는 비교 할 때입니다. 우리가 정말 필요하지 않습니다 파이 같은 카운터, 오른쪽? ANDI 펭 : 당신은하지 않습니다 우리가 정말 상관하지 않기 때문에 얼마나 많은 상자 우리는을 통해 반복했습니다. 우리가 관심을 모두 우리가 가고있는 것입니다 나는 그만 알고있을 때까지 계속. 그리고 당신은 때 중지 알고 표시의 어떤 종류가있다 당신은 널 (NULL) 종료에 걸. 그래. 그러니까 ... 청중 : [들림]. ANDI 펭 : 네. 비교의 경우에 따라서 문자열, 정말하지 않습니다 얼마나 많은 편지를 걱정 내가 비교해야으로 죠 그들은 참 또는 거짓 경우라면 그들은 서로 동일입니다. 나는 얼마나 많은 편지를 걱정하지 않는다 이들 각각에, 맞아? 난 그냥이 있는지 관심 이것과 함께 하나의 일치 성냥 한 후 후 가입 단부까지 줄곧 일치한다. 권리? 말이 돼? 그래서 정말, 얼마나 많은 편지를 걱정하지 않는다 난 그냥 신경 문자의 모든 경기. 그래. 그래. 나는이에서에 이동할 수 있습니까? 좋아요. 우리는 짧은에 조금을 실행하는 시간 그래서 나는 당신을 허용하는거야 사람은 간략하게 볼 수 있습니다. 당신의 ID 경우에 그것을 실행 너희들은 호기심. 그리고 너희들은 무엇을 볼 수 있습니다 이 밖에 인쇄됩니다. 그래. 우리는 또한에 터치합니다 그래서 뭔가 비트는 포인터 연산의 생각이다. 이는, 그것이 전부이며 오히려 조정보다 저장되는 값 포인터의 주소, 그냥 실제로 변화하고 주소 자체. 당신은 인간이 원하는대로한다면 수동으로 포인터를 조정하려면 당신이 할 것입니다 방법은 그냥 포인터의 N 배 크기를 수행. 권리? 그래서 INT. int-- 얼마나 많은 바이트 메모리의 int는? 그것은 바로, 네입니까? 내가 알고있는 경우에 그래서 나는 모든의 배열을 가지고 정수와 나는 하나를 가리 키도록 할 그 후, 난 그냥에 알고 것 오른쪽 4 바이트를 내 포인터를 아래로 이동? 그래서 N 배 크기 포인터 바이트 그러나 많은 바이트 당신은 그냥있어 하여 포인터를 아래로 이동하는 것. 그래서 예를 들어, 우리의 배열이 있다면 정수는, 첫 번째는 그냥 가정 해 봅시다 × 00로 저장됩니다. 당신은 다음의 하나에 될 것입니다 알고 를 0x04는 4 바이트 이상이기 때문에. 그리고 그 후에 한 것 을 0x08 등 등 수. 그래서, 사람들은, 봐. 당신이하고있는 모든이다 당신은 포인터 Y을 가지고 당신은 해당를 추가하고 당신의 메모리 당신은 아래로 이동 할 수 있도록 메모리 블록을 할당. 상위 레벨 개념의 종류. 너희들은 필요하지 않습니다 이번 주에 대해 알고하는, 하지만 거기 아래로하고있어 모든이다. 그래. 또 다른 농담 시간. 두 문자열은 줄에 걸어. 하나는 내가 럼 싶습니다 말한다 코크스 쓰레기 값. 다른 하나는 당신이 용서해야합니다 말한다 내 친구는, 그가 널 (null) 종료 아니에요. 너희들은 그것을 얻을. 죄송합니다. 이것은 내가 나 자신을 유지하는 방법이다 내가 섹션 수험 때가는 내가 몇 농담 슬라이드를 삽입합니다. 어쨌든. 그래. 나는 on-- 이동하기 전에 그래서, 기본적으로, 우리는했습니다 적용되는 모든 개념을 포인터에 관련된 문제. 그리고 우리는 이동을 talk--거야 그 중요한 이유에 대한 자세한, 이야기 그리고 그에 맞는 방법 메모리 관리의 생각. 하지만 난에 이동하기 전에, 누군가가 질문이 있습니까 포인터 사용에 대해, 무슨 일이야 당신이 포인터를 만드는 경우에, 어떻게 각을 참조하고 다른, 그들은 어떻게 역 참조입니까? 에 대한 질문 내가 이동하기 전에? 그래. 좋아요. 그래서이 우리를 제공합니다 더 높은 레벨의 개념 전체 메모리 관리. 따라서, 본질적으로,의 컴퓨터,있다 메모리의 두 가지 기본 유형 또는 메모리 영역에 저장됩니다. 당신이라고 여기에서이 힙 당신은 아래로 여기에있다 무슨 일이 스택이라고. 그리고 우리가 이야기하는거야 스택은 먼저이 있기 때문에 더 finagley 한 당신을 가지 개념을해야 무슨 일이 일어나고 있는지 이해합니다. 그래서 모든 스택은 생각 is-- 그것의 물리적 메모리 스택으로 만약 메모리 블록이 어디에 즉 프로그램 따로 설정되어 그것은 실행중인 동안. 그리고이 모든 본질적으로, 어디 의 지역 변수가 저장됩니다. 그래서 이것은 단지 확대된다 그 스택의 사진에. 거기 스택, 내가 해요 조금 더에 확대. 그래서, 기본적으로, 스택, 당신은 프로그램에서 함수의 무리입니다. 그럼 그냥 가자 일주일에 두 예 우리는 우리의 주요 기능을 가지고 어디에 뿐만 아니라 큐브 함수로 우리는 함수를 만들려고 곳 입력으로 매개 변수를했다 cubed--, 그들을 네모 반듯한 반환 그들을 다시 주에. 그래서 그 방법은 메모리에 저장된 당신이 당신의 주요 기능을 가지고있다 여기에 바닥에. 그리고 각각의 추가 기능 것이 당신은 전화 그 꼭대기에 추가 메모리는 상단에 스택. 실제 스택이라고 생각. 그래서 당신은 당신의 모든 기본이 당신의 주요 기능의 변수, 여기에 무슨 일 모든 저장. 그리고 당신은 전화했을 때 큐브, 그것이 진행하고 모든 사람들의 복사본을 생성한다 파라미터하고이를 저장 다른 장소에서 위. 그래서 우리가 왜 상관이야? 우리가 걱정하는 이유는 우리가 할 수없는 것입니다 사용 파라미터 변수 here-- here-- 우리 우리가 예상을 변경 그들도 바로 여기에 변경할 수 있습니까? 아이디어는 그들이 저장하고 있다는 것입니다 메모리에 다른 장소에서 그래서, 당신은 다른 액세스하는 경우 기능, 당신은 무슨 일이 일어나고 무슨 생각을 실제로 때문에 발생되지 않습니다 메모리 비트는 서로 연결되지 않습니다. 그래서 정말 질문이 우리가 가지 이해하기위한 중요한 이며, 우리가 실행중인 경우, 경우 프로그램, 기능의 크기 그래서 물리적 방법 frame-- 스택 많은 메모리는 우리가 그것을 제공해야합니까? 어쩌면 그것은 거대한 기능은 우리의 그것을 그 많은 메모리를 제공해야합니다. 이 작았다면 우리는 좋겠 작은 조금 필요합니다. 그래서 아이디어는 우리가 실행하는 경우이다 프로그램이 함수의 크기 얼마나 많은에 따라 달라집니다 변수와 변수의 타입 우리는 그것을 제공 할 것이다. 그러나 수의 경우 variables--과 크기, 그 판정이야 당신에 의해 인코더하지만, 실제에 의해 결정된다 프로그램의 사용자. 내가 함수를 만들고 싶었한다면 즉, 사용자로부터의 문자열했다 하지만 실제로 얼마나 큰 몰라 그 문자열은 나를 위해 열심히이다 특정을 충당하기 메모리의 양이 필요합니다. 권리? 이 경우 function-- 경우 때문에 이 사용자는 거대한 문자열을 입력, 이 오류를 만들 것 본질적으로 불리는 것의 당신이 넘어 어디에 스택 오버플로 당신이 가지고있는 메모리의 경계입니다. 그래서 우리는 무엇을해야합니까? 우리는이 거대한를 만들 수없는 경우 그 모든 것을 저장할 수 있습니다 스택, 우리는 그 문제를 해결하기 위해 무엇을해야합니까? 그래서 우리는에와 이야기 이동 예정 메모리의 두 번째 유형에 대한 그리고, 우리는 방법에 대해 이야기 할 수 우리는 두 가지를 함께 사용할 수 있습니다 그 질문을 해결합니다. 그래서 지금 우리는 이동거야 메모리의 다른 부분으로 우리의 컴퓨터에. 즉 힙라고. 그래서 모든 힙 풀이다 의 사용 가능한 메모리가 동적으로 할당 될 수있다. 그래서 동안을 변경할 수 있습니다 프로그램이 실행 중입니다. 그리고 지역의 그 수있는 사용하지 않은 메모리 즉이 될 수 allowed-- 수 기능 할당 호출의 malloc 또는 메모리 할당. 그래서, 본질적 때 당신은 프로그램을 실행하는 동적으로 메모리를 만들 수 있습니다 힙과 여기에 모든 아래로 사용합니다. 그리고 당신의 기능 그럼, 모든 여기에 힙에 액세스 할 수 있습니다. 그래서 malloc에​​,이 생각이 다윗 종류의 신속, 간단하게는 빠뜨려 강의에서, 단지 방법입니다 당신은 당신의 기억을 제어 할 수 있습니다. 마찬가지로, 때 그냥 만드는 그냥있을 때, 기능을 스택 주요 기능을 갖는 당신의 임의의 기능, 당신은 아이로 생각하는 단지 당신이 그들과 함께 할 때 도망. 그들은 정말 나쁜 아이했다. 당신은 그들이 당신을 만들 그들에게 뭔가를 가르쳐, 그리고 당신은 원하는 경우 그들이있어 다시 액세스 거기 당신을 때문에 메모리는 도망 쳤다. 하지만 malloc에​​, 또는 힙, 방법 의 경우 더 나은 아이를 갖는 당신은 종류의 만들 수 있습니다 그들, 그들에게 값을 할당, 정말 소리가 them--를 사용 당신이 원하는 그러나 bad--을 사용, 그러나 제어 할 수 그 다음 메모리를 확보 당신이 그들을 필요로 할 때마다. 그럼, 당신이 함께 할 때 당신의 기능, 아이들이 당신에게 돌아올 그리고 당신은 여전히​​ 그 데이터를 가지고있다. 그래서 우리는 malloc에​​, 또는 작성 방법, 메모리 기능 무효 스타입니다 바이트의 malloc 크기. 그래서 그냥 프로토 타입의 우리가 그렇게 할 이유를합니다. 그래서 예를 들어 우리는 포인터를 생성하는 것이다 의 INT 스타 pointer-- 같음을 int-- 입력 INT의 malloc에​​ 크기. 우리가 크기를 할 이유 그래서 의뿐 아니라 number-- 우리 모두가 알고 있기 때문에 INT는 4 바이트이다, right--하지만 INT는 네입니다 특정 운영 체제에 바이트. 우리의 생각으로 프로그래머는 우​​리가 코드를 작성하는 것을 할 수 원하는 모든 컴퓨터에 단지를 실행 우리의 간단한 컴퓨터. 우리가 사용하고 싶은 이유 그리고 그건 크기뿐 아니라 숫자 네. 즉, 모든 사람에게 의미가 있습니까? 그래서 모든 동행입니다 크기는 C이다 함수 또는 연산자 그 메모리가 수행의 바이트 수를 알려줍니다 변수의 특정 유형을 차지합니다. 이 경우, INT의 크기는 4입니다. 4 바이트. 그리고 malloc에​​는 무료 것입니다 힙에서 4 바이트까지, 당신은 다음 주에 사용할 수있는 기능은 메모리를 저장할 수 있습니다. 모두가 지금까지 그것에 대한 명확한가요? 그래? 청중 : 나는 분명 합니다만 다만된다고 분명히 이상이어야합니다 ANDI 펭 : OK. 완전 괜찮아요. 청중 : --size의이다 들림] 실제로 수 [들림] 그것은 실제로 할 것 우리가 원하는 것은. 그것은 몇 가지 의사 아니다. ANDI 펭 : 아니오. 청중 : 그것은 진짜 누군지 모르겠지만처럼 ANDI 펭이 실제 코드입니다. 청중 : - 우리가 사용할 수 있습니다. 그것은 실제입니다. 쿨. ANDI 펭 : 크기가 다 함께 제공 청중 : 그건 내 인생 행복합니다. ANDI 펭 : 네. 당신이 게으른 프로그래머 인 경우에 따라서 같은 난 종류의 때로는 오전, 나는 기억 싫어 INT 어떤 크기 나는 기억 싫어한다 부동의 크기입니다. 단지의 크기를 알려줍니다 무엇을 그것은이며, 그 많은 쉽다. 괜찮아. 그래서 중요한 것은 너희들이 모두 원하는 당신이있을 때 염두에 두어야합니다 의 malloc을 사용하여 항상 당신이다 이 널 (null)입니다 있는지 확인해야합니다. 같은 내가 다시에 말했다 힙의 사진. 힙은이 거대한입니다 당신이있어 메모리의 스택입니다. 그리고 당신은 덩어리를 취할 수 있도록하려면 그것에서 메모리의 권리, 그것을 사용? 하지만 당신은 더 무엇을해야하는 경우 그 힙에 더 많은 메모리? 내가 이미 모두 사용한 경우 그것의 나는 더 malloc을하려고? 즉 존재하지 않습니다. 당신이있는 이유 글쎄, 그건 오류가 발생하는 것. 당신은 오류를 SEG 것입니다. 당신은거야 어디 분할 결함을 가지고 거기에없는 것들에 액세스하려고합니다. 그래서 길을 우리가 할 그와 방법이 우리 즉 우리가 확인하는 것이입니다 방지 포인터의 경우는 null 볼 수 있습니다. 그래서 만약 내가 뭔가를 malloc을했다 내가, 아니 더 많은 메모리를했다 그 때문에 오류를 인쇄 할 것이다 포인터는 그냥 널에 돌아왔다. 그리고 방법 우리는이 항아리를 할 이, 그냥 좋은 디자인 다만이 항아리는 어떤되어 기억 시간 당신은 아무것도 malloc을하려고, 당신에게 필요 해요 이 널 (null)입니다 있는지 확인합니다. 당신이 시도 할 때마다 때문에 힙에서 메모리를 획득, 당신은 항상 확인해야합니다 메모리를 가지고 있는지 확인하십시오. 즉, 모든이다. 그래서 거의 그 세 코드 라인은, 기억. 때마다 당신이 malloc에​​, 그들을 풍덩. 당신이 그들을 필요로 할 것입니다. 나는 당신을 보장하기 때문에, 우리는거야 케이스와 컴퓨터에 당신을 테스트 당신이이기 때문에 폭발 할 것입니다 의 액세스 메모리에 시도하는 것 거기 사물이 가고있다 충돌과 잘 될 것 아니에요. 그러니 당신의 두뇌에 해당 드릴. malloc에​​, 널 (null). 좋다. 괜찮아. 그런 다음이 낳는다 무슨의 문제 우리는 메모리를 사용 완료 후. 전체 생각 때문에 의 malloc을 갖는이었다 우리는 우리가 취할 수이 힙을 가지고 에서 기억하고 우리는 그것을 사용할 수 있습니다. 권리? 그리고 우리가 무엇을 기억 우리가 그것으로 완료, 즉 한 후, 우리는 다음을 확보 할 수 있습니다. 그것은 가자. 우리는 가자 수 있습니다. 아니면 당신은 또한 누출거야 메모리와 더 나쁜 일이 일어날 것입니다. 기본적으로, 때마다 당신은 메모리를 접촉하고, 나쁜 일하면 일이 일어날 것입니다 제대로 일을하지 않습니다. 그래서 먼저 확인해야합니다, 당신은 메모리를 사용할 수있는 경우. 작업을 완료 한 후 그리고, 당신이 원하는 그것을 해제하고 운영 체제를 허용 그것을 다시 촬영합니다. 그래서 우리는 그렇게 할 방법은 그냥이다 기능 무효 무료, 포인터 메모리의 힙. 그래서 예를 무료 포인터이다. 그것은 간단하고, 아주 쉽게 그것을 잊지 싶지 않아요. 그래서이 null의 경우 무료, 확인하십시오. 모두 좋은? 그래서 다시 한 번, 코드가 너희들 종류의 신속에 눈이 걸릴 수 있습니다. 나는 그것이 새로운 구문을 많이 알고 및 당신이 아, 같이 인 경우는, 모든 권리 즉, 다시 무엇을 의미합니까? 걱정 마. 이 모든 표시하는 것으로 의미되었다 액션, 어떻게이 모든 것들을 함께 사용될 수있다. 그래서 함께 넣어 과거의 무리처럼 슬라이드 우리는 갔다 을 통해 하나의 프로그램으로. 청중 : 방법으로 우리는 ... 사실상 할 수있는 ANDI 펭 : 방법으로 그 우리가 실제로 사용할 수 있습니다. 당신은, 당신의 ID로 그 풍덩 수 당신은 그것을 실행할 수 있으며, 그것은 작동합니다. 청중 : OK. 그래서 진짜? ANDI 펭 : 그건 진짜. 그래. 그래서 그것을 만들려고 글꼴이 너무 다르다 내가 실제 입력 할 때마다 그 코드 글꼴은 글꼴 코드 내 주 코드는, 다른 것으로하지만 즉 실제로 작동하는지 모르겠어요. 청중 : 호 내 생각에는-- ANDI 펭 : OK. 청중 : --sometimes [들림] 내가 해요 같은, 그건 정말 귀여운 것 실제로 가능한 일이었다 경우 하지만 그것은 가능한 일이 아니다. 나는 이것이 가능한 일이라고 좋아한다. ANDI 펭 : OK. 그래. 나는 따라 그 전달합니다. 다윗처럼, 아이들은 정말 슬픈 당신은 가짜 코드를 작성합니다. 괜찮아. 그래? 청중 : 그래서 여기 PTR 실제로 포인터 아니다 이것은 메모리 블록입니까? ANDI 펭 : 그래서 당신에 대해 얘기 첫 번째 줄 아래로 여기 하나? 당신은 여기 하나에 대해 이야기하고 있습니까? 청중 : PTR은 in-- 다른 것 ANDI 펭 : 음, 여기에 너무 내가 실제로 doing--있어, 그냥 여기를 통과 할 수 있습니다. 관계의이 종류에 잘 개념의 모든. 그래서 여기에 우리가 INT 스타 PTR 있습니다. 그래서 포인터를 INT, 그 어디 우리는 실제로 만드는 정수를 가리키는 포인터. 음, 정수를 가리 키도록 것입니다. 그리고 우리는 malloc에​​가는, 또는있어 을주고, 충분한 메모리가 할당 정수를 저장합니다. 그래서이 경우에는 4 바이트. 그리고 그 null-- 등호와 동일한 경우 우리가 인쇄 할거야 null-- 같습니다. 오, 당신이 오류 때문에이 당신의 메모리가있어, 그렇지? 그렇지 않으면 반환 하나, 그건 그냥 프로그램을 말한다 하는 것이 오류를 가지고있다. 그리고 당신이 할 경우 그건, 그 기억이 얻을 무엇이든 저장하는 것 INT는 위치에 당신을 제공합니다 포인터의 값으로 설정. 그래서 실제로 것 물리적으로이 값을 삭제 그리고 INT 수익을 얻을 무엇 이건을 넣을. 그리고 당신은 거 야 가 입력 무엇이든 인쇄. 청중 : 그리고 그건 힙 될 것? ANDI 펭 : 그건 무슨 힙합니다. 청중 : 그리고 그 때문에 액세스 할 수 있습니다. ANDI 펭 : 맞아요. 반갑습니다. 좋다. 청중 : 그래서 우리는이에 PTR를 해제 할 때 마지막 단계는, 우리가 포인터를 자유롭게 아르 또는 우리는 블록을 자유롭게거야? ANDI 펭 : 네. 그래서 우리는 pointer--을 확보하고 그런데, 메모리 블록을 해제. 그래서 유일한 방법 우리는 접근을 균일 수 있습니다 메모리 포인터를 구비하는 것이다. 당신이 포인터가없는 경우있어 이 곳과 같은, 아, 나도 몰라, 권리? 당신이 그것을 해제한다면, 당신은 본질적으로있어 그 전체 블록을 확보. 그런 다음 컴퓨터가 오, 알고, 사용할 수있는 것도, 여기가 없습니다 난 그냥 쓰레기를 넣을 수 있습니다 값 다시로 다시. 청중 : 정수가에 존재 그래서? ANDI 펭 : 정수가 존재합니까? 죄송합니다. 당신은 당신의 질문을 바꿔 할 수 있습니까? 청중 : 당신을 확보 한 후 나는 의미 포인터, 당신이 얻을 정수, 그는 여전히 존재한다? ANDI 펭 : 아니, 그것은하지 않습니다. 아니면 적어도이 존재합니다 당신의 메모리 컴퓨터보다 먼저 그것으로 무엇이든,하지만 거기에 당신을위한 방법은 그것을 얻을 수 없습니다. 포인터를 해제하기 때문에. 그것은 더 이상 어디 있는지 모르겠어요. 그래. 여기에 이​​동하겠습니다. 휴. 그래서 우리는 개념의 많은 통해있어 메모리 관리의 어려움 그리고 우리는 단지거야 기본적으로 지출 가는 5 10 분간 구문 일을 통해 그 유용하고 너희들을 위해 도움이 될 것입니다, 하지만 너무 개념적으로 거기 아무것도. 그래. 그래서 우리는 완전히 여기에 기어를 변경하고 있습니다. 메모리 관리, 어렵다. 포인터 어렵다. 네. 그것은 정말 열심히, 정말. 완전 괜찮아요. 당신의 조각 이유입니다 정말 열심히 할 것. 하지만 당신은 가서 할 경우 우리가있어 일 어떻게해야 만들 확인 일들이 null 인 물건이 있는지 확인해야합니다 null의 경우, 사용 가능한 메모리를 확인, 확인 일이 아니다하게 누출, 당신은 좋은 수 있습니다. 당신은 설정됩니다. 괜찮아. 그래서 우리는이로 이동하는거야 리디렉션의 완전히 새로운 개념. 그리고 지금 전에, 우리가했습니다 주요 방법 와 상호 작용하고 우리의 프로그램은 표준 입력을 통해서이다 표준 출력. 권리? 사용자 입력으로 우리 사물과 컴퓨터 다시 우리에게 단말기를 뱉어. 그러나 다른있다 우리가 상호 작용하기위한 방법 와 컴퓨터와의 날이없는 프로그램 물리적 입력 것들 나는이 메시지가있을 때입니다. 그리고 우리는 그렇게 할 방법입니다 보다 큰 당근을 통해 파이프 기호. 그래서 우리는 또한 읽을 수 및 그를 사용하여 파일에 기록. 그래서 우리는이 작업을 수행하는 방식이다 큰 당근보다, 모두가하고있다 쓰고 무엇이든을 파일은 별도의 파일에 있습니다. 예를 들어, 그래서 안녕하세요 세계를 실행하고 싶었다 나는에 출력을 원하는 다른 파일에 저장 그냥 날, 나는에 인쇄하지 다만 당근보다 더 할 수있는, output.txt를. 이렇게 사용자들은 모두 복용 내 hello.world 프로그램, 출력이 무엇이든, 그것은있어 output.txt를라는 파일에 저장. 다윗이했던 그래서 방법 학생들의 이름을 .csv로, 그것은 너희들이 할 수있는 동일합니다. 그리고 무엇 특히이다 유용한 여기에 큰 두 당근보다 더 큰 than-- 당신이 출력에 추가 할 수 있습니다 징후 당신을 의미 파일, 그냥 상단에 추가 할 수 있습니다. 당신은 단지에 계속 추가 할 수 있습니다 각각의 추가 일의 output.txt를 것을 당신은 일을하고 있습니다. 또는, 당신은 더 들어갈 시작하는 경우 복잡한 프로그램, 개의 큰 당근보다, 그 바로 인쇄 오류 메시지 출력. 그래서 당신은 거대한이 있다고 오류 메시지의 양 당신이 읽고 싶어 그들과 여러분 모두를 통해 스크롤해야하고 싶지 않아 터미널을 통해, 당신은 실제로 단지 할 수있는 output.txt를보다 그리고 저장 것 당신의 모든 오류 파일에서 해당 output.txt를 호출 당신은 통과하고 읽을 수 있습니다. 청중 : 텍스트 파일이 저장됩니다? ANDI 펭이 : 동일한에 저장있어 프로그램은 디렉토리. 그래서 당신은 그냥 가서 찾습니다. 그리고 같은 일 우리 입력을 위해 할 수있는 것은 우리는 실제로 걸릴 수 있습니다 일부 파일의 내용 우리가 입력 할 수있는 우리의 프로그램에 그. 그래서 오히려 명령을 수행하는 것보다 당신을 물리적으로 라인 인수 일을 입력해야합니다 매 시간, 당신 실제로 단지라는 파일을 가질 수있다 그 INPUT.TXT 단지에 모두 넣습니다. 그리고 파이프 때문에 특별히 멋지다 그것은 하나의 프로그램의 출력을 취할 수 및 상기 입력으로 사용 다른 프로그램의. 그래서 예를 들어, 사람 'Vigenere에, 이 코드 줄이 있음을 사람은 어쩌면 아마도 것을 실행 정말 doing-- 무엇인지 몰랐다 이 ./generate 1000 파이프 ./42. 권리? 그래서 모든 뭐하는거야, 우리의 경우 단지 단계로이 단계에서 살펴보고, ./generate, 즉 난 의미 내 프로그램 생성 실행. 즉 입력에 1,000하고있다. 그래서 나는 무작위로 1,000을 생성 할 숫자와 나는 파이프에 갈거야 that-- 또는 나는 that-- 출력을 사용하려고 해요 발견이라는 내 프로그램에 대한 입력으로. 그리고 나는 밖으로 (42)을 찾으려고거야 그 1,000에서 발생 숫자 숫자. 코드의 줄 수 있습니까 다른 사람에 의미? 이런 식으로 우리가 절약하고 그래서 자신 단계의 톤. 우리는 생성 실행하지 않아도, 저장 파일 한 다음 찾기에 넣어. 우리는 한 줄에 모든 것을 할 만 할 수 있습니다. 그래서, 어떤를 출력 생성 찾을에서 바로 다시 풍덩. 그래? 청중 : 그리고 명령의 관점에서 그 하라구, 그건 .. 줄 인수이며, 세 개의 명령 줄 인수? 그것은, 아니 find--, four--을 생성이다 1,000 찾아서 (42)을 생성? 또는 짓이야입니다 ANDI 펭 : 파이프 않도록 정말 명령 줄 인수로 계산 컴파일러 나 때문에 단말기는 파이프를 알고, 오, 내가 전에보고해야한다는 것을 알고있다 그 때문에 파이프 내 출력의 내가 돌봐해야합니다 파이프 그건 내 입력이 있기 때문에. 그래서 that-- 알고 ./generate 1000, 그 두 가지 명령 다음 인수입니다 바로 첫 번째 프로그램. 그리고 ./find (42)는 두 개의 명령이다 두 번째 프로그램 줄 인수. 그래. 모든 사람이 좋은? 그래서 그냥 진짜 빨리, 무엇을 코드의 세 가지 라인은 무엇입니까? 매우 간단합니다. 누군가는 저를 말하고 싶어 첫 번째 라인은 무엇입니까? 청중 : [들림]. ANDI 펭 : 그냥 ...이라고 생각 보다 큰 당근은 무엇입니까? 청중 : 그것은 뭔가를 둔다 다음 줄에. ANDI 펭 : 그래서 무엇이다 그 반대? 청중 : 그것은 다음을 둔다 먼저에 일. ANDI 펭 : 네. 그래서하고있어 모든 당신이있어입니다 프로그램을 실행 .hello-- 당신은 안녕하세요라는 프로그램을 실행하고 있습니다. 당신은 그것을 줄거야 입력은 INPUT.TXT했다. 권리? 때문에 것은 그것을처럼 생각 물리적 안녕하세요 들어가. 그리고 당신은 저장거야 파일의 출력은 output.txt를했다. 어떻게 두 번째 줄은 어떻습니까? 말해 원하는 두 번째 라인은 무엇입니까? 청중 : [들림]. ANDI 펭 : 죄송합니다. 다시 말해. 엘리엇. 청중 : 그것은두고 그래서 찾기에 번호의 목록입니다. ANDI 펭 : 네. 그래서에서, 기억, 발견 순서는 당신을 찾아 실행 당신이 검색하는 위치를 알 필요가있다. 그리고하고 그래서 모든 것을 여기 당신을주고 있다는 것입니다 미리는 집합이 할당 번호는 다음 것입니다 찾을 수 (42)의 번호들을 검색 할 수 있습니다. 그리고 15. 기억, 너희들이 실행이 때 당신이 당신의 코드를 테스트했다. 지금 당신은 무엇을하고 있었는지 이해합니까? 청중 : 그것은에 태우고 명령어의 집합 세 가지로 통해 [들림]에 세 짓이야 게임을 이기기 위해 얻을 수 있습니다. ANDI 펭 : 네. 청중 : 그것은 사람들을 입력 프로그램에 지시. ANDI 펭 : 꽤 많이. 그래서 물결 CS50. / pset3 / 3 × 3, 모든 하고 있던 우리가 텍스트를 만든 것이 었습니다 했다 파일 모든 너희들을 위해 준비 제목. 게임 플레이하는 그래서, 당신은 그냥 ... 우리는 단지 프로그램에 넣습니다. 그래서 우리가 만들어 낸이 보드와 우리가하고 프로그램에 해당 보드를 넣어 그게 실행 세의 타일을 만들어 세에 의해. 즉,하고 있던 모든 것을입니다. 그리고 실제로 마법이 있었다 무대 뒤에서 계속 너희들은하지 않았다 우리가 프로그램 프로그램. 하지만 지금 너희들은 이유를 이해 우리는 그래서 모든 좋은 것을했다. 괜찮아. 리디렉션이 매우 동안 그래서 유용, C는 일반적인 메커니즘을 가지고 읽기와 쓰기 자신의 파일을 저장합니다. 아무것도 개념적 난 그래서 여기에 어려운 단지를 통해 갈 정말, 정말 빨리. 이 모든 몇 가지 암기입니다 그리고 반드시 사람을 문법적으로 올바르게 사용하고 있습니다. 우리가 그렇게 할 것입니다 방법입니다 파일에 대한 참조를 생성, 우리는 그에게 우리가 파일을 열고 것 모든 읽기와 쓰기를 할 것입니다 다음 파일을 닫습니다. 때 일이 너희들 염두에 두어야한다 할 때문에,이 일을하는 동안 것을 우리는 폐쇄하고 파일을 열 수 있습니다 그 모든 명령이 포함되어 있습니다 표준 규격이있는 I / O 도서관. 그래서 당신이있어 때마다 확인 당신이 included-- 한 것을 이렇게 표준 I / O 도트 H included-- #. 빨리 진짜. 단계 하나, 당신은 만들 해당 파일에 대한 참조. 그리고 우리가 한 포인터를했습니다 지금, 당신 사람들은 나에게 무엇을 말할 수있는 코드 행 하고있다. 권리? 그것은을 만드는하고있어 모든 것을 포인터 형식 파일의 파일 이름. 당신은 무슨 것을 알고 있기 때문에 파일을 가리 당신이있어합니다 파일을 열 예정. 그럼 당신은 F open-- 모든 것 이 파일을 열 수 있습니다 않습니다. 이것은 파일 이름이다. 그리고 당신이 할 수있는 세 가지가있다. 당신은 읽기, 쓰기 또는 추가 할 수 있습니다. 가장 일반적으로, 너희들 읽기 또는 쓰기됩니다 당신이 될거야 때문에 파일의 입력 또는 1을 출력한다. 그래서 꽤 많은 R과 W는 두 가지 이것은 당신이 대부분을 사용할 것입니다. 이 경우, 나는이 한 모든입니다 파일이라는 파일에 대한 포인터를 만들 수 있습니다. 나는 그것을 열어 그리고 난 난 reading-- 해요 file.txt를 호출이 파일을 열 나는 그것을 읽고 있어요. 그게 내가이 시점에서하고있어 모든이다. 그리고 이들 단지에 기능입니다 당신은 다른 일을 읽을 수있는 또는 다른 것을 쓰기 또는 다른 장소로 이동 당신은 어디에서보고 싶어요. 이 모든 온라인. 이 모든 당신은 구글 수 있습니다. 필요가 그들을 기억 없습니다. 그들은 단지가있어, 당신의 사용을위한 일회용 당신이 좋아하면 사용할 수. 그래서 난 그냥 읽고 싶다면 한번에 한 문자에있어서, 나는 파일는 fgetc 할 것입니다. 내가 원하는 경우 또는 라인 읽기 한 번에 텍스트, 내가는 fgets 할 것입니다. 그리고 등등 등등. 이 모든 단지 다른 할 일 너희들은 사용할 수 있습니다. 그리고 마지막으로, 후 나는 해요 읽기 또는 쓰기 수행, 난 그냥 그 파일을 FCLOSE거야. 그리고 이것은 하나입니다 기억 이 중, 제발 기억 다른 파일을이 작업을 수행하거나 작동하지 않을. 항상 전에 파일을 엽니 다 읽거나 독서, 당신은 항상해야 당신이 그것을 열면 닫습니다. 메모리와 같은 일이, 오른쪽? 당신은 항상 가지고 가야 기억과 무료. 여기에서 당신은 항상을 열 필요가 를 사용하여 읽기를 시도하기 전에 파일 그리고 당신은 항상에있다 당신이 그것을 연 후 닫습니다. 그래서이 온라인에 있습니다. 나는에 너희들을 도전하는거야 가지가 인쇄하는 프로그램을 작성 파일에 hello.world. 정말 간단합니다. 그것은 본질적으로 포함 몇 줄의 코드 이 단지 이전에 작성되었습니다. 당신은 넣어거야 함께 해당 물품. 그래서 몇 가지 중요한 사항을 염두에 두어야합니다 당신 동안 사람들은 이것을 사용하려고합니다. 이 모든 매우 유용 경우 당신의 PSET이 일주일 동안, 하면 fopen은 파일 포인터를 생성하는 것입니다. 사실은 실제 파일이 아닙니다. 모든이 가리​​키는 열려는 파일. 그리고 당신은 본질적으로있어, 때마다 당신은 다른 함수를 사용하는 FREAD 나에 fwrite 같은 또는는 fgetc 또는는 fgets이며, 당신은이 문제를 전달하고 있는지 이러한 모든 기능의 포인터. 그래서 당신은 실제로 복용하지 않을 파일과 기능을 사용하여, 당신은 단지 포인터를 취하고있어 그 기능에 넣어 당신이 사용할 수 있도록. 그리고 당신은 닫습니다 잊어 버린 경우 파일 당신이 그것을 사용 후, 프로그램 메모리가 누수 것입니다. 기본적으로, 모든 수단 나쁜 일이 일어날 것입니다 당신의 프로그램은 것입니다 제대로 작동하지. 그래서 PSET에의 시작, 나는 생각한다 그는 explained-- 경우 짧은이있다 네이트 Valgrind의가 무엇인지 explained--. Valgrind의는 모두에게 당신을위한 방법입니다 메모리를 누출하지 않을 있는지 확인하십시오. 그래서 너희들은 만들고 싶어 반드시 짧은 것을보고 그 그것을 설명하기 때문에 정말 잘 어떤 일이 발생. 그래. 그래서, 정말 통해 갔다 정말 빨리 나는 때문에 정말 에 대해 이야기를하고 싶지 PSET 너희들은 떠나기 전에. 사람이 개념적으로 질문이 있습니까? 대부분이 모든 것은 단지 구문은 그 당신은 파일을 읽거나 쓸 수 있습니다. 마지막으로, 모두가 좋아. 우리는 지금 PSET에 대해 이야기 할 것입니다. 그래서, 손의 쇼, 얼마나 많은 너희들은 이번 주 사양을 읽어? 아, 반입니다. 그건 좋다. 그래서이 정말 사실입니다 의미에서 정말 재미 PSET 당신은 같은 느낌 형사가 있기 때문에 이 모든 정말 멋진 일을 당신은 당신이 할 수있는 것을 알고하지 않았다 하지만 지금은 정말 멋지다 당신은 그 (것)을 할 수있다. 그리고 실제로 많은입니다 너희들이 생각하는 것보다 간단합니다. 너무 기본적인 절반 이 프로그램은 것입니다 소스 코드를 다운로드하는 것 또는 배포 코드는 우리가 작성한. 그리고 당신은 하나의 폴더를 할 겁니다 라는 BMP 및 다른 폴더 JPG했다. 당신의 BMP 내에서있어 세 프로그램을해야 할 것. 그 중 하나는 이미 당신을 위해 작성되었습니다. 그래서 copy.c는 프로그램이다 우리는 이미 서면으로 작성했습니다 당신을 위해 당신은 다운로드 거라고. 않는 모든 사진 입력으로 가지고있다 및 출력으로서 복사본을 만든다. 즉, 모든 파일이하고있다. 하지만 당신을 위해 수행 할 작업 whodunit-- 당신의 그래서 얼마나 많은 사람은 5 학년이나 봐 주길에서 기억 당신은 아마 3 학년을 younger--있어 너희들이 비밀 메시지를했을 때와 당신은 그 위에 종이를 넣어했다 메시지를 복호화하기? 그래? 그래서 우리가하고있는 전부입니다 컴퓨터에 대해이 시간을 제외하고. 그래서 우리는 당신이 사랑스러운 이미지를 부여했습니다. 처럼 보이지 않는 아래에 아무것도하지만, 그것은 당신을 도울 것 단서입니다 질문에 대답으로 우리가 당신을 부탁드립니다. 기본적으로 당신이 원하는 파일을 입력하려면 주위에 몇 가지를 조정할, 어쩌면 색상의 이미지를, 물건을 이동 그래서 어떤 메시지를 통해 올 수 있습니다. 그래서 내부가 숨겨져 있습니다 픽셀과 정보 당신은 정확하게 코드를 작성하는 경우 디코딩하고 말할 것입니다 이 단서는 무엇인지. 그리고 몇 가지 유용한 힌트와 같은 방법 이 접근에 대해 갈 것입니다. 당신은 정말 익숙 할 파일 I와 자신 / O 우리는에서 읽고 있기 때문에 파일과 파일에 기록. 권리? 그래서 우리는마다 할 즉, 그 포함 I / O 파일. 당신은 갈거야 숙지해야 와, 당신은 어떻게 사진 파일을 열 수 있습니까? 어떻게 사진 등의 파일을 작성하려면 어떻게해야합니까? 당신은 어떻게 그 모든 일을해야합니까? 그건 정말 유용 할 것입니다. 둘째, 방법입니다 변경할 수있을 것 이 사진을 정리 색상? 그것은 아마 포함 것 당신의 화소 또는 RGB 값을 조정 어딘가 본질적으로, 거기에. 권리 방법이 없습니다 당신만큼이 문제를 해결 오래 당신이 할 수있는 종류의 같은 주는거 그것을 만들 그 픽셀을 조정 당신이 걱정하는 일처럼 보인다. 그게 우리가뿐만 아니라 신경 전부. 그래서이 작업을 수행하는 방법에는 여러 가지가있다. 그냥 때까지 함께 놀러 당신이 작동하는 무언가를 얻을. 그리고 당신이 정말로 것 코드를 놀라게하는 방법을 몇 줄 실제로이 작업을 수행 할 필요가있다. 나는 3과 같이 이야기하고있다 코드 전체의 라인 당신은 쓸 필요가 있음 위해이 작업을 수행 할 수 있습니다. 당신은 자신을 발견 그래서 경우 40 쓰기, 코드의 30 라인, 당신은 아마 잘못하고 있어요. 당신이해야 할 모든 종류의 것입니다 색상으로 놀러 그리고 그 밖으로 작동 방법을 참조하십시오. 그래서 우리는 비트에 머리 문제가 어렵게된다. 여기에서 우리는 크기를 조정해야 여기서 우리가 당신을 요구하는지 이러시면 우리는 입력으로 당신을 제공하고 사진 및 크기 조정 뭔가에이 이미지 크거나 작은 것을 우리는 당신을 줄 크기에 따라 달라집니다. 그래서 강의에서 기억 데이비드 신속하게 어떻게 정보를 통해 보았다 컴퓨터에 의해 검출되고 이 파일의 형식 뜻합니다. 그래서 Word 파일은 특별이 그 앞의 문자 이 Word 파일의 컴퓨터를 말한다. JPEG와 같은 것. 이 경우 우리는거야 당신에게 JPEG 파일을 제공합니다. 우리가 알고있는 모든 것입니다 JPEG 파일은 오른쪽 사진입니다? 그러나 컴퓨터 구별하는 매우 구체적인 방법으로 그것. 의 시작 부분에 따라서 모든 JPEG 파일, 당신이있어 비트 맵이라고 무엇을해야 할 것 헤더 정보 및 비트 맵 파일 헤더. 모든 사람들은있다 데이터의 다른 조각 즉, 헤이, 컴퓨터를 말해 잘 들어, JPEG 파일은오고 이들은 차원 또는 그 JPEG의 특성. 그래서 너희들은 정말 알고 싶어요 어떤 정보를 내부에 저장된다 그 헤더 및 이들의 크기는 것입니다. 실행중인 경우 때문에 당신의 프로그램을 통해, 당신이 원하는거야 그 금액 이상 건너 뜁니다. 권리? 당신은 상관하지 않기 때문에 헤더를 수정하는 방법에 대한, 당신은 이후에 무엇을 수정하는 걱정. 권리? 그래서 반드시 너희들이 알고 있어야합니다 얼마나 큰 것들이다. 둘째, 전에 당신 시작 이미지 크기를 조정하려고, 당신은 아마 원하는거야 원래의 크기를 저장합니다. 권리? 나는이 그림을 말한다면 때문에 , 100 픽셀 100 픽셀입니다 그리고 당신이 만들고 싶어 그것은 네 번 더, 당신은 당신이해야 할 것을 알고있다 사에 의해 그 크기를 곱합니다. 그럼 당신은 출력 파일을 원하는 예를 들어 400 픽셀, 400. 그래서에 너희들 정말 유용 원래의 크기를 저장합니다. 그리고 그 후, 후 당신은 크기를 조정 마쳤, 당신은 새로운 헤더를 쓸 수 있습니다 크기를 조정 한 후 그 새로운 차원. 그리고 방법 당신 물리적 큰 픽셀 단위로 만들 수 있습니다 당신이 쓸 수 있다는 것입니다 새로운 RGB--는 RGB 기억 모든 녹색, 빨간색을 의미하는, 그리고 밖으로 파일 blue-- 픽셀. 그리고 당신이 원하는거야 어떤 다른 양이 우리는 패딩을 호출합니다. 모든 패딩되어 공간입니다 이전과 사진 후 그것은 본질적으로 그 your--에게 얼마나 큰 그것을 사진에게 해야 최대 복용. 이 많은 매우 추상적입니다 당신은 PSET 사양을 읽을하지 않은 경우 그러나이 될 것 경우에 매우 유용 당신은 실제로 그것을 통해 읽는. 오, 그래, 그 말이, 같은 당신이있어. 내가 왜이 일을해야합니까? 말이된다. 마지막으로,이 아마도 중 하나입니다 가장 실망 프로그램 지금 당신이 할 수 없기 때문에 이 작업 또는 있지 않은 경우 알려줍니다. , 회복이 모든 프로그램이며, 되는 일이 제대로 실행하는 경우, 갑자기 할 수 있어야 50 이미지를 복구하는 우리의 하드 드라이브에 분실되었다. 이 프로그램 그래서 문제 당신이 정말로 그것을 테스트 할 수 없다는 것입니다 하나는 복구 때문에 그들 또는 당신은하지 않았다. 그래서 당신 종류의 단지 그것으로 놀러가, 당신의 프로그램 인 경우 제대로, 당신이 있습니다 작업 갑자기에서 그 참조 당신이했습니다 디렉토리 의 거대한 양을 얻었다 지금 거기 사진. 그래서 접근하는 방법 이 문제는 우리가 것입니다 무엇이 당신을 줄 것 card.raw 파일이라고합니다. 기본적으로, 그건 단지 손상된 파일 모든 사진은 저장과 당신은 복구해야하는 것입니다. 그래서 당신은 아마 원하는거야 입력 귀하의 card.raw, 또는 열려면 당신의 card.raw 파일과 야 조작하려는 것 그것은 JPEG 파일을 저장할 수 있습니다. 그래서 추적하고 저장하여 시작할 것 각각의 JPEG 당신은 그것을 찾을 수있다. 개별적으로 모든 않을거야 갑자기 단지 50 JPEG 파일을 만들 수 있습니다. 당신은 유지하려는거야 당신은 개방하고 얼마나 많은 트랙. 그리고 당신은 원하는 당신이있을 때, 확인 buffer--에 기록 너희들 내가 무슨 말을하는지 알 것입니다 당신이 spec--을 읽고 나면 당신이 원하는 당신이 부호를 사용하고 있는지 확인 문자 버퍼. 그리고 당신은 물어보고 싶은 자신의 문제, 얼마나 많은 바이트 CF--는 카드 파일에있는? 그것은 당신이 거 야 얼마나 많은이다 당신의 버퍼에 읽고 싶어. 당신이 있는지 확인하려면거야 두 정렬 당신 때문에 임의 메모리 누출이 없습니다. 당신은 정확히 얼마나 많은 알고 바이트이 필요하고 얼마나 많은 당신이 그 (것)들을 가지고 원하는 바이트. 그리고 마지막으로, 당신은 원하는 라는 함수를 사용 sprint-- 의 인쇄 사용자 정의 파일을 생성 F-- 당신이 찾는 모든 새로운 JPEG의 이름. 당신이 만들도록 카드에 JPEG 파일을 찾아, 당신이 원하는거야 를 저장하고 이름을 지정합니다. 권리? 그래서 당신은 거 야 이 기능을 사용하려면 이름을 만들려면 그 당신의 JPEG 파일을 모두 저장할 수 있습니다. 그리고 마지막으로, 폐쇄하는 것을 잊지 마세요 각 JPEG은 당신이 완료 후. 당신이있어 무엇 때문에 할 일 당신이있어입니다 아마해야 할 것 루프의 일종 그 당신의 JPEG 파일 모두를 반복. 당신은 JPEG를 작성하는거야 당신이 그것을 발견로 이름을 바꿉니다. 하지만 당신은 완료 후 모든 단일 JPEG와, 당신이 시작할 수 있도록 당신이 그것을 닫을 필요 이상과 다음 사진으로 이동합니다. 그래서 뭔가 그 우리가 좋아 정말 재미, 이 때문에 같은 이상한 문제 설정 하지만 이상하게 만족스러운 문제 세트이며, 사진의 모든 것을 우리 제대로 복구하는 경우, 당신이, 모든 사진은 사진이다 당신의 훌륭한 교수진, 모두 하버드에서 here-- 여기 예일. 그리고 당신은 일어날 경우 모든 사진을 복구 및 직원을 식별 그 카드의 회원, 우리의 경우와 selfies을 당신은, 캠퍼스 주위에 우리를 찾을 모든 사진은 당신이 우리를 제출, 우리는거야 당신에게 보관 공간의 기가 바이트를 제공합니다. 그래서 여기에 수학을 할 수 있습니다. 50 사진이 있다면 및 (50) 교육 직원, 당신은 모든 50을 찾는 일 경우 우리는, 즉, 드롭 박스의 50기가바이트이​​다 기본적으로, 우리는 너희들을주는 것입니다. 그래서 몇 가지 여분의 추가 인센티브 너희들은하지 않았다 경우 단지 잃어버린 이미지를 복구하기 관심. 몇 가지 추가 혜택도있다. 그것은 재미있는 문제 세트입니다. 정말이다. 그것은 종류의 실망하지만 그것을 당신이 인식 할 때 정말 재미되고, 와우, 내가 지금 일하고 있어요 이러한 모든 사진이 것을 난 그냥 혼자 만들었습니다. PSET에 대한 질문? 누군가를 위해 누가 이미 시작, 당신은 질문이있는 경우, 나는 몇 분 후 여기있을거야 섹션 당신은 나에게 얘기하고 싶어합니다. 음, 녀석을 수행. 미안 해요, 내가 정보 너희들에 버려진. 포인터는 정말, 정말 도전과 좌절. 그리고 나는 정말 다행이야 너희들은 나와 함께 머물렀다. 우리는 깊이에 더 얘기하자 다음 주에 대한 우리는 해시 테이블을하고 시작 같이 을 포함하는 더 많은 기능. 그래. 사람이 어떤을 가지고 있다면 질문은, 내가 주위에있을 것입니다. 오는 등을 주셔서 감사합니다 사탕 더 많은 사탕 거기에 있기 때문이다. 쿨.