1 00:00:00,000 --> 00:00:00,499 2 00:00:00,499 --> 00:00:11,261 [இசை] 3 00:00:11,261 --> 00:00:12,640 >> டேவிட் ஜே MALAN: சரி. 4 00:00:12,640 --> 00:00:14,525 இந்த CS50 உள்ளது. 5 00:00:14,525 --> 00:00:16,009 இந்த வாரம் 5 தொடக்கத்தில் உள்ளது. 6 00:00:16,009 --> 00:00:18,050 மற்றும் நீங்கள் கவனித்தீர்களா என, பொருள் சில 7 00:00:18,050 --> 00:00:21,050 இன்னும் கொஞ்சம் வருகிறது சிக்கலான, சிறிய அடர்த்தியான. 8 00:00:21,050 --> 00:00:24,560 >> அது குறிப்பாக, மிகவும் எளிது நீங்கள், சில நேரம் தைரியம் 9 00:00:24,560 --> 00:00:28,600 மிகவும் கீழே கிறுக்கு முயற்சி செய்ய வேண்டும் நாம் எதையும், நாம் வர்க்கம் என்று. 10 00:00:28,600 --> 00:00:31,626 ஆனால் அந்த ஒருவேளை, உணர சிறந்த வழிகாட்டி அணுகுமுறை 11 00:00:31,626 --> 00:00:34,250 பொருள் இந்த வகையான கற்றல், மற்றும் பொருள் பொதுவாக. 12 00:00:34,250 --> 00:00:37,250 எனவே நாம் மகிழ்ச்சியடைகிறோம் என்று CS50 சொந்த Gheng அறிவிக்க 13 00:00:37,250 --> 00:00:39,780 காங் தயார் தொடங்கியுள்ளது ஒரு குறிப்புகளை நியமன தொகுப்பு 14 00:00:39,780 --> 00:00:42,100 நிச்சயமாக, நம்பிக்கை இந்த, என்று ஒன்று உள்ளது 15 00:00:42,100 --> 00:00:44,030 மட்டும் ஒரு பணியாற்ற குறிப்பு மற்றும் ஒரு ஆதார 16 00:00:44,030 --> 00:00:47,410 பொருள் ஆய்வு மற்றும் போகிறாய் மீண்டும் பொருள் மூலம் வேண்டும் என்று 17 00:00:47,410 --> 00:00:51,230 சுற்றி முதல் முறையாக தப்பி ஆனால் மேலும், அதனால் உங்கள் தலைகள் இருக்க முடியும் மேலும் 18 00:00:51,230 --> 00:00:53,740 கீழே போது அது வரை விட சொற்பொழிவு நேரம் வரும், 19 00:00:53,740 --> 00:00:56,960 நீங்கள் ஈடுபட வேண்டும் என்று மேலும் சிந்தனையுடன், என 20 00:00:56,960 --> 00:00:59,170 மேலும் ஸ்கிரிப்லி எதிர்த்தார். 21 00:00:59,170 --> 00:01:02,510 >> என்று கொண்டு, நீங்கள் காணலாம் என்ன இணையதளத்தில் இந்த போன்ற ஆவணங்களை ஆகிறது. 22 00:01:02,510 --> 00:01:04,660 அறிவிப்பு, மேல் இடது, அங்கு மட்டும் பொருளடக்கத்தை, 23 00:01:04,660 --> 00:01:06,920 ஆனால் நேரம் குறியீடுகள் என்று உடனடியாக நீங்கள் குதிக்கும் 24 00:01:06,920 --> 00:01:09,077 அதற்கான பகுதியாக வீடியோ ஆன்லைன். 25 00:01:09,077 --> 00:01:11,410 மற்றும் இங்கே என்ன சாங் செய்துள்ளார் அடிப்படையில், ஆவணப்படுத்தப்பட்டுள்ளது 26 00:01:11,410 --> 00:01:13,340 என்ன இந்த நடந்தது குறிப்பிட்ட விரிவுரை. 27 00:01:13,340 --> 00:01:16,370 மற்றும் விரிவுரைகள் பல உள்ளன ஏற்கனவே ஆன்லைன் இப்போது இந்த URL உடன். 28 00:01:16,370 --> 00:01:20,110 நாம் எஞ்சிய பதிவு தொடர வேண்டும் இந்த வாரம் இறுதியில் அந்த, 29 00:01:20,110 --> 00:01:22,380 அதனால் அந்த வள பயன்படுத்தி கொள்ள வேண்டாம். 30 00:01:22,380 --> 00:01:25,740 >> எனவே மேலும் சந்தடி இல்லாமல், நாங்கள் மீண்டும் தலாம் தொடங்கியது 31 00:01:25,740 --> 00:01:28,180 வருகிறது என்று அடுக்கு சில நேரம் சரம். 32 00:01:28,180 --> 00:01:30,670 நாம் ஒரு சரம் என்ன சொல்ல உண்மையில் கடந்த வாரம் ஆகும்? 33 00:01:30,670 --> 00:01:31,720 34 00:01:31,720 --> 00:01:32,900 எனவே எரிப்பதை நட்சத்திரம். 35 00:01:32,900 --> 00:01:34,900 மற்றும் கரி நட்சத்திர, நன்கு, என்ன உண்மையில் அதன் அர்த்தம் என்ன? 36 00:01:34,900 --> 00:01:37,150 சரி, இந்த நேரத்தில், நாம் கிடைத்தால் ஒரு செயல்பாடு அழைப்பு, 37 00:01:37,150 --> 00:01:40,450 GetString, மற்றும் சேமிக்கும் போன்ற என்று அழைக்கப்படும் திரும்பி 38 00:01:40,450 --> 00:01:42,910 ஓர் GetString மதிப்பு மாறி என்று 39 00:01:42,910 --> 00:01:47,721 நாம் எழுதும் வருகிறோம் சரம் கள் வகை அங்கு மேலே குறியீடு வரி. 40 00:01:47,721 --> 00:01:49,970 நான் பார்க்கும் போது அது தான் என் கையெழுத்து இங்கே பெரிதாக 41 00:01:49,970 --> 00:01:51,930 நான் இந்த எவ்வளவு கொடிய உணர செய்கிறது. 42 00:01:51,930 --> 00:01:54,180 >> எனினும், நாம் கருதி கொள்வோம், வலது புறத்தில் 43 00:01:54,180 --> 00:01:57,070 ஆயினும், ஒரு நியாயமான ஆகிறது என்ன சித்தரிப்பு 44 00:01:57,070 --> 00:01:58,880 இந்த நடக்கிறது getString நேரம். 45 00:01:58,880 --> 00:02:00,380 GetString, நிச்சயமாக, ஒரு சரம் பெறுகிறார். 46 00:02:00,380 --> 00:02:01,691 ஆனால் உண்மையில் என்ன அர்த்தம்? 47 00:02:01,691 --> 00:02:04,190 அது ஒரு துண்டின் பெறும் இயங்கு இருந்து நினைவகம் 48 00:02:04,190 --> 00:02:06,040 ஒரு செயல்பாடு அழைப்பு, malloc என்று. 49 00:02:06,040 --> 00:02:07,390 ஆனால் இன்னும் அந்த பின்னர். 50 00:02:07,390 --> 00:02:09,139 பின்னர் அது விரிவாக்கிறது நினைவகம் என்று துண்டின் 51 00:02:09,139 --> 00:02:11,764 கடிதங்கள் பயனர் , தட்டச்சு தொடர்ந்து, நிச்சயமாக, 52 00:02:11,764 --> 00:02:14,800 ஒரு வெற்று தன்மை, அல்லது பயன் மிகவும் இறுதியில் பூஜ்ஜியம். 53 00:02:14,800 --> 00:02:18,280 >> இதற்கிடையில், இடது புறத்தில் இந்த கதை, இந்த நேரத்தில், 54 00:02:18,280 --> 00:02:20,850 நாம் கள் போல, ஒரு மாறி அறிவித்தார். 55 00:02:20,850 --> 00:02:24,770 என்று மாறி இப்போது என்ன ஆகிறது ஒரு சுட்டிக்காட்டி அழைப்பு தொடங்க. 56 00:02:24,770 --> 00:02:29,190 இது உள்ளே ஒரு பெட்டியில் தான் நாம் சரம் வைத்து, Daven, உள்ளபடியே, 57 00:02:29,190 --> 00:02:32,550 மாறாக நாம் அந்த சதுர வைத்து இடது சரியாக என்ன பெட்டி? 58 00:02:32,550 --> 00:02:34,890 59 00:02:34,890 --> 00:02:35,390 சரி? 60 00:02:35,390 --> 00:02:37,118 >> பார்வையாளர்கள்: முகவரி அதை நினைவு அமைந்துள்ளது. 61 00:02:37,118 --> 00:02:38,118 >> டேவிட் ஜே MALAN: நிச்சயமாக. 62 00:02:38,118 --> 00:02:40,690 Daven அங்கு முகவரி நினைவகம் அமைந்துள்ளது. 63 00:02:40,690 --> 00:02:44,650 மேலும் Daven அனைத்து அமைந்துள்ள எங்கே உள்ளபடியே, ஆனால் குறிப்பாக முகவரி 64 00:02:44,650 --> 00:02:45,150 என்ன? 65 00:02:45,150 --> 00:02:46,311 66 00:02:46,311 --> 00:02:46,810 சரி? 67 00:02:46,810 --> 00:02:47,460 >> பார்வையாளர்கள்: முதல் எழுத்து. 68 00:02:47,460 --> 00:02:50,209 >> டேவிட் ஜே MALAN: முதல் எழுத்து இந்த வழக்கில் Daven, இதில், 69 00:02:50,209 --> 00:02:53,820 நான் தன்னிச்சையாக இருந்தது மற்றும் யதார்த்தமற்ற 1, Ox1, 70 00:02:53,820 --> 00:02:55,910 இது தான் அர்த்தம் 1 எண்ம. 71 00:02:55,910 --> 00:02:57,993 ஆனால் அது அநேகமாக நடக்கிறது ஒரு மிக பெரிய எண் இருக்கும் 72 00:02:57,993 --> 00:03:01,260 நாங்கள் வரைய வேண்டும் என்று ஒரு முன்னொட்டு ஒரு 0x உடன், 73 00:03:01,260 --> 00:03:02,806 ஒரு அறுபதின்ம தன்மையை குறிக்கும். 74 00:03:02,806 --> 00:03:05,930 நாம் எங்கே தெரிய வேண்டும், ஏனெனில் Daven எழுத்துக்கள் மற்ற 75 00:03:05,930 --> 00:03:09,860 ஏனெனில், என்ன எளிய வடிவமைப்பு முடிவு பல ஆண்டுகளுக்கு முன்பு செய்யப்பட்டது என்று? 76 00:03:09,860 --> 00:03:10,548 சரி? 77 00:03:10,548 --> 00:03:11,651 >> பார்வையாளர்கள்: பின்கோடு 0. 78 00:03:11,651 --> 00:03:12,900 டேவிட் ஜே MALAN: சரி, சரியாக. 79 00:03:12,900 --> 00:03:18,100 பின்சாய்வுக்கோடானது 0 என்றாலும், நீங்கள் அனுமதிக்கிறது நேரியல் நேரம், சரம் பிரயாணம், 80 00:03:18,100 --> 00:03:20,400 இடது இருந்து வலது நடக்க, ஒரு வட்டத்திற்கு, அல்லது ஒரு போது 81 00:03:20,400 --> 00:03:22,608 கண்ணி, அல்லது வேறு ஏதாவதா என்று, மற்றும் இங்கே, ஓ, தீர்மானிக்க 82 00:03:22,608 --> 00:03:24,751 இந்த குறிப்பிட்ட சரம் இறுதியில் உள்ளது. 83 00:03:24,751 --> 00:03:27,000 வெறும் முகவரி எனவே ஒரு சரம் தொடக்கத்தில், 84 00:03:27,000 --> 00:03:30,290 நாங்கள் முழுமையாக அணுக முடியும் அது அனைத்து இந்த நேரத்தில், ஏனெனில், 85 00:03:30,290 --> 00:03:32,030 ஒரு சரம் ஒரு கரி நட்சத்திர வருகிறது. 86 00:03:32,030 --> 00:03:36,370 >> எனவே அதை பயன்படுத்தி தொடர நிச்சயமாக நன்றாக இருக்கிறது CS50 நூலகம் மற்றும் இந்த சுருக்க, 87 00:03:36,370 --> 00:03:38,440 அதனால் பேச, ஆனால் நாம் செய்வேன் சரியாக பார்க்க தொடங்க 88 00:03:38,440 --> 00:03:41,230 என்ன நடக்கிறது இந்த முழு நேரம் அடியில். 89 00:03:41,230 --> 00:03:45,260 எனவே நீங்கள் இந்த உதாரணம் நினைவு இருக்கலாம், கூட, கடந்த காலத்தில் இருந்து, 0 ஒப்பிட்டு, 90 00:03:45,260 --> 00:03:47,300 இது உண்மையில் ஒப்பிட்டு இல்லை. 91 00:03:47,300 --> 00:03:49,070 ஆனால் நாம் இந்த தீர்க்க தொடங்கியது. 92 00:03:49,070 --> 00:03:52,020 >> ஆனால் ஒருவேளை ஒரு வலுவூட்டுவது, நான் யாரோ ஆர்வமூட்டும் 93 00:03:52,020 --> 00:03:54,261 ஒரு பிங்க் யானை இன்று, மேலும், சாங் மூலம்? 94 00:03:54,261 --> 00:03:55,760 எப்படி முன் நீங்கள்? [செவிக்கு புலப்படாமல்]. 95 00:03:55,760 --> 00:03:56,660 வா. 96 00:03:56,660 --> 00:03:58,740 >> மற்றும் இதற்கிடையில், நீங்கள் வந்து என, நாம் 97 00:03:58,740 --> 00:04:01,670 ஒரு கணம் கருத்தில் என்ன இந்த குறியீடு உண்மையில் என்ன நடந்தது. 98 00:04:01,670 --> 00:04:04,917 இது இரண்டு மாறிகள் வரை அறிவித்தார் மேல், கள் மற்றும் t, மற்றும் GetString அழைப்பு. 99 00:04:04,917 --> 00:04:08,250 இது ஒரு மிகவும் பயனர் நட்பு திட்டம் அல்ல அதை நீங்கள் சொல்ல முடியாது, ஏனெனில் என்ன செய்ய. 100 00:04:08,250 --> 00:04:10,541 ஆனால் நாங்கள் இருக்கிறோம் கருதி நாம் ஓரு பகுதியாக மையமாக. 101 00:04:10,541 --> 00:04:14,470 கள் சமம் என்றால் பின்னர் நாங்கள் செய்கிறோம் , அது printf சொல்ல வேண்டும் T சமம், 102 00:04:14,470 --> 00:04:16,170 நீங்கள் அதே விஷயத்தை தட்டச்சு. 103 00:04:16,170 --> 00:04:16,670 வணக்கம். 104 00:04:16,670 --> 00:04:17,050 உங்கள் பெயர் என்ன? 105 00:04:17,050 --> 00:04:17,779 >> அமுதா கிருஷ்ணா: அமுதா கிருஷ்ணா. 106 00:04:17,779 --> 00:04:19,529 டேவிட் ஜே MALAN: அமுதா கிருஷ்ணா, உங்களை சந்திப்பதில் மகிழ்ச்சி. 107 00:04:19,529 --> 00:04:21,800 உங்கள் சவால் எனவே யானை கையில் 108 00:04:21,800 --> 00:04:25,230 முதலில் எங்களுக்கு என்ன ஒரு படம் வரைய ஆகிறது அந்த முதல் இரண்டு பிரதிநிதித்துவம் 109 00:04:25,230 --> 00:04:25,970 கோடுகள். 110 00:04:25,970 --> 00:04:28,139 எனவே கள் மற்றும் t இருக்கலாம் எப்படி திரையில் பிரதிநிதித்துவம்? 111 00:04:28,139 --> 00:04:30,680 நீங்கள் தான் அதை வரைய முடியும் இந்த பெரிய திரையில் உங்கள் விரல். 112 00:04:30,680 --> 00:04:31,780 113 00:04:31,780 --> 00:04:34,510 >> எனவே இரண்டு பகுதிகளாக இருக்கிறது சமன்பாடு ஒவ்வொரு பக்கத்தில். 114 00:04:34,510 --> 00:04:37,760 எனவே அங்கு இடது கள், மற்றும் பின்னர் வலது GetString. 115 00:04:37,760 --> 00:04:40,540 பின்னர் டி, இடது இருக்கிறது பின்னர் வலது GetString. 116 00:04:40,540 --> 00:04:42,630 எனவே நாம் எப்படி ஆரம்பிப்பது ஒரு படம் வரைந்து என்று 117 00:04:42,630 --> 00:04:46,340 என்ன நடக்கிறது பிரதிபலிக்கிறது இங்கே நினைவகத்தில், நீங்கள் சொல்ல முடியும்? 118 00:04:46,340 --> 00:04:49,150 என்னை நீங்கள் விளக்க அனுமதிக்க நீங்கள் போய் நீங்கள் என்ன செய்கிறீர்கள். 119 00:04:49,150 --> 00:04:49,820 >> அமுதா கிருஷ்ணா: சரி. 120 00:04:49,820 --> 00:04:58,890 சரி, முதல், அதை கேட்டு நீங்கள் உள்ளீடு சரம் பெற. 121 00:04:58,890 --> 00:05:00,439 அது மன்னிக்கவும், ஓ store-- வேண்டும். 122 00:05:00,439 --> 00:05:01,230 டேவிட் ஜே MALAN: சரி. 123 00:05:01,230 --> 00:05:01,730 நல்ல. 124 00:05:01,730 --> 00:05:03,330 இது என்ன என்று அழைக்கப்படுகிறது? 125 00:05:03,330 --> 00:05:03,950 சரி, ஓ. 126 00:05:03,950 --> 00:05:04,450 போகும். 127 00:05:04,450 --> 00:05:05,575 நான் குறுக்கிட சொல்லவில்லை. 128 00:05:05,575 --> 00:05:07,060 அமுதா கிருஷ்ணா: மன்னிக்கவும். 129 00:05:07,060 --> 00:05:14,237 எனவே அது உள்ளீடு அதை விரும்பவில்லை முகவரி நிச்சயமாக இல்லை of--. 130 00:05:14,237 --> 00:05:17,320 நான் சரியாக எண்ணை நினைவில் முடியாது, ஆனால் நான் அதை 0 தொடங்கி என்று நம்புகிறேன். 131 00:05:17,320 --> 00:05:18,420 >> டேவிட் ஜே MALAN: அது சரி நான் எண்கள் ஏனெனில், 132 00:05:18,420 --> 00:05:19,650 எனவே சரியான பதில் இல்லை. 133 00:05:19,650 --> 00:05:22,105 >> அமுதா கிருஷ்ணா: 0 ஆர்க் தொடங்கி. 134 00:05:22,105 --> 00:05:24,000 >> டேவிட் ஜே MALAN: சரி, உறுப்பு 0. 135 00:05:24,000 --> 00:05:24,765 நிச்சயமாக. 136 00:05:24,765 --> 00:05:28,295 >> அமுதா கிருஷ்ணா: பின்னர் இருந்தது வெறும் இரண்டு கடிதம் போன்ற 137 00:05:28,295 --> 00:05:30,496 >> டேவிட் ஜே MALAN: சரி, நீங்கள் திரும்ப. 138 00:05:30,496 --> 00:05:33,629 >> அமுதா கிருஷ்ணா: எனவே உறுப்பு 0, பின்னர் உறுப்பு 1 அல்லது உறுப்பு 2. 139 00:05:33,629 --> 00:05:36,670 இது துண்டு மற்றும் டேவிட் ஜே MALAN: படத்தை நீங்கள் இப்போது வரைந்து? 140 00:05:36,670 --> 00:05:37,690 getString அழைப்பு? 141 00:05:37,690 --> 00:05:38,830 அல்லது கள் அறிவிப்பு? 142 00:05:38,830 --> 00:05:42,890 >> அமுதா கிருஷ்ணா: அறிவிப்பு கள், நான் நம்புகிறேன். 143 00:05:42,890 --> 00:05:45,980 ஓ, GetString, அதை காரணம் ஒவ்வொரு [ஒரு உள்ளிட்ட வேண்டும்? பகுதி. ?] 144 00:05:45,980 --> 00:05:46,510 >> டேவிட் ஜே MALAN: நல்ல. 145 00:05:46,510 --> 00:05:47,051 சரியாக. 146 00:05:47,051 --> 00:05:49,300 இந்த திறம்பட போதும் ஒரு வரிசை, திரும்ப திரும்ப, 147 00:05:49,300 --> 00:05:53,300 நாம் ஒரு சரம் திரும்ப கிடைக்கும் போது, நாம் 01 மற்றும் 2 பயன்படுத்தி சரம் குறியீட்டு. 148 00:05:53,300 --> 00:05:56,180 தொழில்நுட்ப ரீதியாக, இந்த அநேகமாக உள்ளன தனிப்பட்ட முகவரிகளை பிரதிநிதித்துவம், 149 00:05:56,180 --> 00:05:57,100 ஆனால் அது நல்லது. 150 00:05:57,100 --> 00:06:00,170 >> எனவே, நினைக்கிறேன் என்றால் நான் வேகமாக நாம் விட்ட இடத்தில் முன்னோக்கி 151 00:06:00,170 --> 00:06:04,320 கடந்த முறை, ஏதேனும் ஒன்று சரங்களை, ஒரு பி ஈ கிராம் இருந்தது 152 00:06:04,320 --> 00:06:10,337 பின்சாய்வுக்கோடானது 0, அதன் மூலம் குறிக்கும் காபே தான் உள்ளீடு, எப்படி நாம் கள் இப்போது பிரதிநிதித்துவம்? 153 00:06:10,337 --> 00:06:12,670 இது தான் என்று நினைவு என்றால் GetString மூலம் திரும்பிய? 154 00:06:12,670 --> 00:06:14,415 155 00:06:14,415 --> 00:06:17,610 >> அமுதா கிருஷ்ணா: இது இருக்க வேண்டும் ஒரு வில் பிரதிநிதித்துவம்? 156 00:06:17,610 --> 00:06:18,750 >> டேவிட் ஜே MALAN: ஒரு வில் மூலம்? 157 00:06:18,750 --> 00:06:19,130 சரி, இல்லை. 158 00:06:19,130 --> 00:06:21,171 , தான் pictorially, சொல்கிறேன் என்னை போய் 159 00:06:21,171 --> 00:06:25,710 இந்த கள் என்றால், இந்த என்று முன்மொழிய GetString திரும்ப மதிப்பு இருக்கிறது. 160 00:06:25,710 --> 00:06:29,482 நீங்கள் 0, 1, 2, இந்த வரையப்பட்ட இது , செய்தபின் நியாயமான உள்ளது நாம் ஏனெனில் 161 00:06:29,482 --> 00:06:30,940 போன்ற சரம் குறியீட்டு முடியும். 162 00:06:30,940 --> 00:06:33,340 ஆனால் இசைவானதாக இருக்க வேண்டும் கடந்த முறை, எனக்கு முன்னே போகட்டும் 163 00:06:33,340 --> 00:06:37,310 தன்னிச்சையாக இந்த என்று முன்மொழிய முகவரி 1, இந்த முகவரியை 2, 164 00:06:37,310 --> 00:06:39,597 இந்த முன்னும் பின்னுமாக முகவரி 3, மற்றும் ஆகிறது. 165 00:06:39,597 --> 00:06:41,430 எனவே, தான் சூப்பர் இருக்க வேண்டும் தெளிவான, என்ன நடக்கிறது 166 00:06:41,430 --> 00:06:44,580 என்று விளைவாக கள் செல்ல குறியீடு முதல் வரி, நீங்கள் சொல்ல முடியும்? 167 00:06:44,580 --> 00:06:45,420 >> அமுதா கிருஷ்ணா: முகவரி 1? 168 00:06:45,420 --> 00:06:46,420 >> டேவிட் ஜே MALAN: நிச்சயமாக. 169 00:06:46,420 --> 00:06:47,190 எனவே 0x1 உரையாற்ற. 170 00:06:47,190 --> 00:06:48,220 171 00:06:48,220 --> 00:06:51,230 இதற்கிடையில், எனக்கு முன்னே போகட்டும் மற்றும் நீங்கள் என்ன செய்தேன் மிகவும் நகல் 172 00:06:51,230 --> 00:06:52,740 இங்கே என் சொந்த t சேர்க்க. 173 00:06:52,740 --> 00:06:56,340 நான் காபே தட்டச்சு செய்தால் மீண்டும் இரண்டாவது முறையாக, 174 00:06:56,340 --> 00:07:01,530 GetString மூலம் கேட்கப்பட்ட போது, அங்கு, நிச்சயமாக, காபே செல்ல போகிறது? 175 00:07:01,530 --> 00:07:02,280 சரி, presumably-- 176 00:07:02,280 --> 00:07:04,935 177 00:07:04,935 --> 00:07:05,975 >> அமுதா கிருஷ்ணா: இங்கே இப்படி? 178 00:07:05,975 --> 00:07:06,850 டேவிட் ஜே MALAN: ஆமாம். 179 00:07:06,850 --> 00:07:08,516 அமுதா கிருஷ்ணா: அல்லது அதே பெட்டிகளில் தான்? 180 00:07:08,516 --> 00:07:11,940 டேவிட் ஜே MALAN: எனக்கு, ஆமாம் முன்மொழிய விரும்புகிறேன் சரியாக, இந்த கூடுதல் பெட்டிகள் மிகவும். 181 00:07:11,940 --> 00:07:15,230 ஆனால் இப்போது முக்கிய விஷயம் கூட, என்று நான் இந்த அழகான நெருங்கிய வரையப்பட்ட போதும் 182 00:07:15,230 --> 00:07:18,650 ஒன்றாக 0x1, இந்த உண்மையில் 0x2-- உள்ளது, 183 00:07:18,650 --> 00:07:25,750 இந்த இப்போது, முகவரி 0x10 இருக்கலாம் உதாரணமாக, மற்றும் 0x11, மற்றும் 0x12, 184 00:07:25,750 --> 00:07:26,870 மற்றும் முன்னும் பின்னுமாக. 185 00:07:26,870 --> 00:07:29,955 எனவே, அந்த வழக்கு என்றால், டி என்ன இங்கே முடிவடையும் நடக்கிறது? 186 00:07:29,955 --> 00:07:30,830 >> அமுதா கிருஷ்ணா: 0x10? 187 00:07:30,830 --> 00:07:31,830 டேவிட் ஜே MALAN: நிச்சயமாக. 188 00:07:31,830 --> 00:07:33,180 எனவே 0x10. 189 00:07:33,180 --> 00:07:34,570 அதனால் இப்போது, கடைசி கேள்வி. 190 00:07:34,570 --> 00:07:37,510 நீங்கள், இதுவரை, பணியாற்றினேன் இதுவரை ஒரு யானை கடினமான. 191 00:07:37,510 --> 00:07:42,650 இப்போது, நான் குறியீடு மேலே மீண்டும், நான் செய்யும் போது, வரி மூன்று, 192 00:07:42,650 --> 00:07:47,630 கள் சமம் T சமம் என்றால், நான் உண்மையில் என்ன ஆகிறேன் நாங்கள் இங்கே வரையப்பட்ட என்று? 193 00:07:47,630 --> 00:07:49,271 >> அமுதா கிருஷ்ணா: இரண்டு முகவரிகள்? 194 00:07:49,271 --> 00:07:50,270 டேவிட் ஜே MALAN: நிச்சயமாக. 195 00:07:50,270 --> 00:07:53,350 எனவே நான் டி சம சம சொல்கிறேன்? 196 00:07:53,350 --> 00:07:56,210 வேறு வார்த்தைகளில் கூறுவதானால், 10 சம சம 1? 197 00:07:56,210 --> 00:07:59,710 நிச்சயமாக, தெளிவான பதில் இப்போது இல்லை, இல்லை. 198 00:07:59,710 --> 00:08:02,920 எனவே இந்த திட்டம் இறுதியில் ஆகிறது நீங்கள் என்ன சொல்ல, அச்சிட போகிறது? 199 00:08:02,920 --> 00:08:05,770 200 00:08:05,770 --> 00:08:08,405 >> அமுதா கிருஷ்ணா: இது இருக்க வேண்டும் நீங்கள் அதே விஷயத்தை தட்டச்சு? 201 00:08:08,405 --> 00:08:11,446 >> டேவிட் ஜே MALAN: எனவே கள் 1 மற்றும் டி 10 ஆகும்? 202 00:08:11,446 --> 00:08:13,320 >> அமுதா கிருஷ்ணா: நீங்கள் வேறு விஷயங்களை தட்டச்சு. 203 00:08:13,320 --> 00:08:13,570 >> டேவிட் ஜே MALAN: நிச்சயமாக. 204 00:08:13,570 --> 00:08:14,480 நீங்கள் வேறு விஷயங்களை தட்டச்சு. 205 00:08:14,480 --> 00:08:14,850 சரி. 206 00:08:14,850 --> 00:08:16,714 எனவே கரவொலி ஒரு சுற்று, இங்கே, நாம் முடிந்தால். 207 00:08:16,714 --> 00:08:17,214 [கரவொலி] 208 00:08:17,214 --> 00:08:17,708 என்று வலி இருந்தது. 209 00:08:17,708 --> 00:08:18,208 எனக்கு தெரியும். 210 00:08:18,208 --> 00:08:19,684 நேர்த்தியாக செய்து. 211 00:08:19,684 --> 00:08:24,690 எனவே இப்போது நாம் பார்ப்போம் என்றால் நம்மால் முடியாது பிழைத்திருத்தம் இருந்தது என்ன தவிர கிண்டல். 212 00:08:24,690 --> 00:08:28,040 நிச்சயமாக, நாம் இந்த நிலையான போது இது நான் இப்போது green-- பிரதிநிதித்துவம் வேண்டும் 213 00:08:28,040 --> 00:08:29,690 நாம் இங்கே மாற்றங்கள் ஒரு ஜோடி இல்லை. 214 00:08:29,690 --> 00:08:32,409 முதல், ஒரு நல்லறிவு என நான் நான் முதலில் சோதனை, பார்க்கலாம் 215 00:08:32,409 --> 00:08:35,110 கள் பூஜ்ய சமம் மற்றும் t பூஜ்ய சமம் என்றால். 216 00:08:35,110 --> 00:08:39,440 மற்றும் தெளிவாக இருக்க வேண்டும், போது வலிமை கள் அல்லது t இந்த குறியீடு பூஜ்ய இருக்கும்? 217 00:08:39,440 --> 00:08:43,140 218 00:08:43,140 --> 00:08:44,490 போது கள் அல்லது t பூஜ்ய இருக்கலாம். 219 00:08:44,490 --> 00:08:44,990 சரி? 220 00:08:44,990 --> 00:08:45,990 >> பார்வையாளர்கள்: [செவிக்கு புலப்படாமல்]. 221 00:08:45,990 --> 00:08:49,490 222 00:08:49,490 --> 00:08:50,510 >> டேவிட் ஜே MALAN: நிச்சயமாக. 223 00:08:50,510 --> 00:08:52,840 சரம் பயனர் என்றால் தட்டச்சு வழி மிகவும் நீளமாக உள்ளது 224 00:08:52,840 --> 00:08:56,140 நினைவகத்தில் பொருந்துவதில்லை, அல்லது சில என்று போன்ற வித்தியாசமான மூலையில் வழக்கில், 225 00:08:56,140 --> 00:08:59,010 நாம் பார்க்க வேண்டும் போல் எளிமையாக, GetString, இன்று, அதன் ஆவணங்கள், 226 00:08:59,010 --> 00:09:02,330 அதை பூஜ்ய என திரும்ப ஒரு சிறப்பு காவலாளி மதிப்பு, 227 00:09:02,330 --> 00:09:05,417 அல்லது அப்படி ஒரு சிறப்பு சின்னமாக என்று ஏதோ தவறு நடந்துவிட்டது என்று பொருள். 228 00:09:05,417 --> 00:09:07,500 எனவே நாங்கள் சரிபார்க்க வேண்டும் அது மாறிவிடும் என்பதால், அந்த 229 00:09:07,500 --> 00:09:09,720 என்று பூஜ்ய மிகவும் ஆபத்தான மதிப்பு உள்ளது. 230 00:09:09,720 --> 00:09:14,250 >> பெரும்பாலும், நீங்கள் ஏதாவது செய்ய முயற்சி செய்தால் பூஜ்ய அதை கடந்து ஒரு செயல்பாடு சம்பந்தப்பட்ட 231 00:09:14,250 --> 00:09:17,470 உள்ளீடு, அந்த செயல்பாடு instance-- க்கான மிகவும் அது, செயலிழக்க செய்யும் இருக்கலாம், 232 00:09:17,470 --> 00:09:19,090 உங்கள் முழு திட்டத்தை கீழே எடுத்து. 233 00:09:19,090 --> 00:09:22,570 எனவே, இந்த மூன்றாவது வரி இப்போது ஒரு நல்லறிவு ஆகிறது நீங்கள் கூட, பிழை சோதனை சரிபார்க்க. 234 00:09:22,570 --> 00:09:25,450 என்று இப்போது ஒரு நல்ல பழக்கம் எங்களுக்கு எந்த நேரத்தில் பெற நாங்கள் 235 00:09:25,450 --> 00:09:28,050 ஒரு மதிப்பு பயன்படுத்த முயற்சி என்று , திறன், பூஜ்ய இருக்க முடியும். 236 00:09:28,050 --> 00:09:32,000 >> இப்போது, இங்கே நான்காவது வரிசையில், "என்றால் strcmp (கள், t)" நன்றாக, 237 00:09:32,000 --> 00:09:33,180 என்ன சொல்கிறாய் என்று? 238 00:09:33,180 --> 00:09:36,750 சரி, நாம் இந்த மிகவும் கினார் ஒரு கூறினார் சரம் ஒப்பிட்டு என்ற விழா. 239 00:09:36,750 --> 00:09:40,370 வாழ்க்கையில் அதன் நோக்கம் ஒப்பிட்டு ஆகிறது இரண்டாவது எதிராக தனது முதல் வாதம், 240 00:09:40,370 --> 00:09:44,640 ஆனால் தங்கள் முகவரிகளை அடிப்படையில், நாம் ஒரு கணம் தற்செயலாக செய்தது போல் 241 00:09:44,640 --> 00:09:48,270 முன்பு சிவப்பு குறியீடு, ஆனால் மாறாக அந்த இரண்டு ஒப்பிட்டு 242 00:09:48,270 --> 00:09:53,210 மனித சக்திக்கு உட்பட்டு உள்ளுணர்வு சரங்களை இந்த எதிராக, இந்த ஒப்பிடுவதன் மூலம் வழி, 243 00:09:53,210 --> 00:09:56,690 இந்த, இந்த எதிராக, எதிராக பின்னர் நிறுத்தும் போது ஒரு என்றால் 244 00:09:56,690 --> 00:09:59,590 அல்லது என் விரல்களை இரு ஒரு பின்சாய்வுக்கோடானது 0 எம். 245 00:09:59,590 --> 00:10:04,530 எனவே யாராவது ஆண்டுகளுக்கு முன்பு செயல்படுத்திய strcmp செயல்பாடு எங்களுக்கு செயல்படுத்த 246 00:10:04,530 --> 00:10:08,890 நாம் விட்டிருக்கும் என்று நம்பினார் என்று வெறும் இரண்டு எளிய மதிப்புகள் ஒப்பிட்டு. 247 00:10:08,890 --> 00:10:14,929 >> இப்போது வெளிப்படையாக, நான் வரைதல் வைத்திருக்கிறேன் இந்த பல்வேறு எண்கள் அனைத்தும். 248 00:10:14,929 --> 00:10:17,470 ஆனால் உண்மையில் நான் வந்துள்ளேன், ஆகிறது முழு நேரம் வரை இந்த செய்யும். 249 00:10:17,470 --> 00:10:19,580 அதனால் என்னை போய் இந்த அவுட் கிறுக்கு 250 00:10:19,580 --> 00:10:23,100 ஒரு புள்ளி வைக்க வேண்டும் என்று, இறுதியில் நாள் மற்றும் முன்னோக்கி நகரும், 251 00:10:23,100 --> 00:10:30,160 நாம் உண்மையிலேயே அக்கறை போவதில்லை என்ன விஷயங்கள் உண்மையில் முகவரிகள் 252 00:10:30,160 --> 00:10:30,790 நினைவு. 253 00:10:30,790 --> 00:10:34,320 அதனால் நான் இந்த வரைய போகிறேன் இவ்வளவு இனி எண்கள் வகையான, 254 00:10:34,320 --> 00:10:38,970 நான் ஒரு இது ஒரு சுருக்க இருக்கிறேன் வெறும் அம்புகள் மேலும் நட்பு சிறிய. 255 00:10:38,970 --> 00:10:42,060 >> வேறுவிதமாக கூறினால், கள் ஒரு சுட்டிக்காட்டி உள்ளது என்றால், நன்றாக, தான் உண்மையில், அது வரைய 256 00:10:42,060 --> 00:10:45,430 ஒரு சுட்டிக்காட்டி, ஒரு அம்புக்குறி சுட்டி , வேறு ஏதாவது தன்னை 257 00:10:45,430 --> 00:10:48,280 பற்றி மிக அதிகமாக கவலைப்பட இந்த முகவரிகள் minutia 258 00:10:48,280 --> 00:10:49,910 இது, மீண்டும், நான் எப்படியும் செய்து. 259 00:10:49,910 --> 00:10:52,680 ஆனால் நாங்கள் அந்த முகவரிகளை பார்க்க வேண்டும், சில நேரங்களில், குறியீடு பிழைத்திருத்தம். 260 00:10:52,680 --> 00:10:56,450 >> இப்போது இதற்கிடையில், இந்த திட்டம் இங்கே திருத்தங்கள், நிச்சயமாக, 261 00:10:56,450 --> 00:10:58,720 ஒப்பிடுவதன் மூலம் அந்த பிரச்சனை அந்த இரண்டு சரங்களை. 262 00:10:58,720 --> 00:11:00,260 ஆனால் நாம் மற்றொரு பிரச்சனை கடக்கும். 263 00:11:00,260 --> 00:11:03,180 இந்த நகல் இருந்தது கடந்த முறை நிரல் 264 00:11:03,180 --> 00:11:06,880 அதன்படி, நான், மூலதனமாய் முயற்சி ஒரு சரம் இல் தான் முதல் எழுத்து. 265 00:11:06,880 --> 00:11:09,620 ஆனால் அறிகுறி என்ன நாங்கள் கடந்த முறை பார்த்தேன் 266 00:11:09,620 --> 00:11:14,150 ஒரு பயனர் போன்ற ஒரு மதிப்பு தட்டச்சு ஸ்மால் கேப், கள், 267 00:11:14,150 --> 00:11:19,310 பின்னர் நாம், T ஒரு கள் ஒதுக்கப்படும் அங்கு மூன்றாவது வரி என, 268 00:11:19,310 --> 00:11:22,900 பின்னர் நான் முயற்சி டி அடைப்புக்குறி 0 மூலதனமாய்? 269 00:11:22,900 --> 00:11:25,950 விளைவு என்னவாக இருந்தது டி அடைப்புக்குறி 0 இங்கே மாறும்? 270 00:11:25,950 --> 00:11:27,150 >> பார்வையாளர்கள்: அது கள் மாற்றப்பட்டது. 271 00:11:27,150 --> 00:11:29,360 >> டேவிட் ஜே MALAN: ஆமாம், நான் நன்றாக, கள் மாற்றப்பட்டது. 272 00:11:29,360 --> 00:11:31,050 உண்மையில் என்ன நடக்கிறது என்று காரணம்? 273 00:11:31,050 --> 00:11:34,130 சரி, நான் சுத்தம் என்றால் என்னை பார்க்க அனுமதிக்க இந்த படத்தை, பின்வருமாறு. 274 00:11:34,130 --> 00:11:41,390 >> கள் இருந்தால், மீண்டும், வார்த்தை கிராம், ஏ, பி, இ, பின்சாய்வுக்கோடானது, 0, மற்றும் கள் 275 00:11:41,390 --> 00:11:44,084 நாம் ஒரு பெட்டியில் வரைதல் தொடர வேண்டும் இங்கே, ஆனால் இன்னும் முகவரிகள். 276 00:11:44,084 --> 00:11:45,250 விஷயங்களை செய்து தடுத்து நிறுத்தலாம். 277 00:11:45,250 --> 00:11:47,510 தான் ஒரு படம் வரைய வேண்டும் உலக எளிமைப்படுத்த. 278 00:11:47,510 --> 00:11:52,640 >> நான் சரம் t டி அறிவிக்கும் போது, என்று நினைவகம் என்று துண்டின் உருவாக்குகிறது. 279 00:11:52,640 --> 00:11:55,850 சதுக்கத்தில் 32 ஆக நடக்கிறது பெரும்பாலான கணினிகள் பிட்கள். 280 00:11:55,850 --> 00:11:59,530 உண்மையில், நீங்கள் எப்போதும் ஒரு கேட்டிருக்கிறேன் கணினி, ஒரு 32 பிட் கட்டமைப்பில் கொண்ட 281 00:11:59,530 --> 00:12:03,000 உண்மையில் ஆடம்பரமான பேச, அந்த அது 32 பிட் முகவரிகளை பயன்படுத்துகிறது என்று பொருள். 282 00:12:03,000 --> 00:12:05,370 மற்றும் ஒதுக்கி ஒரு தொழில்நுட்ப போல், நீங்கள் எப்போதும் வியந்து என்றால் 283 00:12:05,370 --> 00:12:09,630 ஏன் பழைய கணினிகள், உண்மையில் நீங்கள் என்றால் RAM நிறைய சூப் அவர்களை முயற்சி, 284 00:12:09,630 --> 00:12:12,360 மட்டுமே அதிகபட்சமாக இருக்க முடியும் ரேம் நான்கு ஜிகாபைட், 285 00:12:12,360 --> 00:12:14,860 அந்த மொழியில், ஏனென்றால், உங்கள் பழைய கணினியில் முடிந்த மட்டும் 286 00:12:14,860 --> 00:12:17,250 4 போன்ற அதிக எண்ணிக்கை பில்லியன், 4 பில்லியன் பைட்டுகள், 287 00:12:17,250 --> 00:12:20,590 ஏனெனில் அது 32 பிட் பயன்படுத்தி முகவரிகள் எண்கள். 288 00:12:20,590 --> 00:12:23,260 >> ஆனால் எந்த விஷயத்தில், இந்த உதாரணமாக, கதை மிகவும் எளிமையானது. 289 00:12:23,260 --> 00:12:27,250 டி மற்றொரு சுட்டிக்காட்டி இருக்கிறது, அல்லது உண்மையில் ஒரு எரிப்பதை நட்சத்திர, aka சரம். 290 00:12:27,250 --> 00:12:30,860 எப்படி நான் இந்த படத்தை மேம்படுத்த வேண்டும் செய்கிறது இப்போது, குறியீடு என்று இரண்டாவது வரிசையில், 291 00:12:30,860 --> 00:12:31,950 டாட் பின்னர், டாட், டாட்? 292 00:12:31,950 --> 00:12:35,845 நான் செய்யும் போது சரம் t, கள் அரைக்காற்புள்ளி சமம் இந்த படத்தை எப்படி மாற்ற? 293 00:12:35,845 --> 00:12:37,500 294 00:12:37,500 --> 00:12:38,000 சரி? 295 00:12:38,000 --> 00:12:38,916 >> பார்வையாளர்கள்: [செவிக்கு புலப்படாமல்]. 296 00:12:38,916 --> 00:12:41,087 297 00:12:41,087 --> 00:12:42,020 >> டேவிட் ஜே MALAN: ஆமாம். 298 00:12:42,020 --> 00:12:42,600 சரியாக. 299 00:12:42,600 --> 00:12:45,620 நான் இருந்து ஒரு அம்புக்குறி வைத்தேன் அதே முகவரியை டி பெட்டியில், 300 00:12:45,620 --> 00:12:47,570 அதே முதல் கடிதம் கொடுத்தார். 301 00:12:47,570 --> 00:12:50,850 அல்லது தொழில்நுட்ப, இந்த பையன், 0x1 இருந்தனர் 302 00:12:50,850 --> 00:12:53,052 நான் போல தான் இங்கே 0x1 இங்கே 0x1. 303 00:12:53,052 --> 00:12:54,760 ஆனால் மீண்டும், யார் கவலைப்படுகிறார்கள் முகவரிகளை பற்றி? 304 00:12:54,760 --> 00:12:56,345 அது இப்போது விஷயம் என்று தான் யோசனை. 305 00:12:56,345 --> 00:12:57,720 எனவே இந்த என்ன நடக்கிறது இங்கே இருக்கிறது. 306 00:12:57,720 --> 00:13:02,690 நிச்சயமாக, நீங்கள் செய்தால் t அடைப்புக்குறி எனவே வரிசை குறியீட்டில் இது 0, 307 00:13:02,690 --> 00:13:05,650 என்ற போக்கில் மற்றும் வெளிப்படையாக, அது தெரிகிறது இங்கே ஒரு வரிசை உள்ளது போல், 308 00:13:05,650 --> 00:13:07,340 ஆனால் இப்போது இந்த வித்தியாசமான விஷயம். 309 00:13:07,340 --> 00:13:11,160 என்று நிரலாக்க மொழி தெரியும், சி, நீங்கள் இந்த வசதியை வழங்குகிறது 310 00:13:11,160 --> 00:13:14,650 அதன்படி, t ஒரு கூட சுட்டிக்காட்டி, அல்லது கள் ஒரு சுட்டிக்காட்டி, 311 00:13:14,650 --> 00:13:18,050 நீங்கள் இன்னும் என்று தெரிந்திருந்தால் பயன்படுத்த முடியும் வசதியாக சதுர அடைப்புக்குறி 312 00:13:18,050 --> 00:13:22,520 குறிப்பு முதல் உறுப்பு செல்ல, இரண்டாவது உறுப்பு, அல்லது எந்த உறுப்பு அல்லது 313 00:13:22,520 --> 00:13:26,130 என்று சுட்டிக்காட்டி சுட்டி என்று செய்ய மறைமுகமாக, ஏனெனில், அது 314 00:13:26,130 --> 00:13:29,410 இந்த வழக்கில், ஆகிறது சில வரிசை சுட்டி. 315 00:13:29,410 --> 00:13:30,340 >> நாம் எப்படி இந்த சரிசெய்வது? 316 00:13:30,340 --> 00:13:33,660 அது ஒரு கிடைத்தது அங்கு வெளிப்படையாக, இந்த ஆகிறது முதல் பார்வையில் சிறிய பெரும். 317 00:13:33,660 --> 00:13:35,340 ஆனால் இங்கே ஒரு புதிய மற்றும் மேம்படுத்தப்பட்ட பதிப்பு. 318 00:13:35,340 --> 00:13:37,460 >> எனவே, முதலில் நான் பெற்ற CS50 நூலகம் போக்க, 319 00:13:37,460 --> 00:13:41,170 வெறும் உண்மையில் கள் அம்பலப்படுத்த ஒரு எரிப்பதை நட்சத்திரம், ஒரு பொருள். 320 00:13:41,170 --> 00:13:43,540 மற்றும் t ஒரு எரிப்பதை நட்சத்திர ஆகிறது. 321 00:13:43,540 --> 00:13:48,290 ஆனால் என்ன நடக்கிறது அந்த வரிசையில் வலது புறத்தில் 322 00:13:48,290 --> 00:13:49,970 t ஒரு மதிப்பு ஒதுக்கப்படுகின்றன எங்கே? 323 00:13:49,970 --> 00:13:50,790 >> Malloc என்ன? 324 00:13:50,790 --> 00:13:51,630 அது என்ன strlen? 325 00:13:51,630 --> 00:13:52,547 Sizeof (கரி) என்றால் என்ன? 326 00:13:52,547 --> 00:13:54,380 ஏன் கர்மம் செய்கிறது வரி தோற்றம் மிகவும் சிக்கலான? 327 00:13:54,380 --> 00:13:55,713 என்ன இது ஒரு உயர்ந்த மட்டத்தில் செய்வது? 328 00:13:55,713 --> 00:13:56,482 329 00:13:56,482 --> 00:13:57,440 அது t என்ன சேமித்து? 330 00:13:57,440 --> 00:13:58,646 சரி? 331 00:13:58,646 --> 00:14:01,104 பார்வையாளர்கள்: அது ஒதுக்கீடு ஒரு நினைவகம் இடத்தை குறிப்பிட்ட அளவு. 332 00:14:01,104 --> 00:14:03,032 இது, சேமிக்க தான் நான் நினைக்கிறேன், கடிதங்கள் [செவிக்கு புலப்படாமல்]. 333 00:14:03,032 --> 00:14:04,032 >> டேவிட் ஜே MALAN: பெர்பெக்ட். 334 00:14:04,032 --> 00:14:04,540 சரியான. 335 00:14:04,540 --> 00:14:06,650 அது ஒரு குறிப்பிட்ட ஒதுக்கீடு நினைவகம் இடத்தை அளவு 336 00:14:06,650 --> 00:14:08,940 , மறைமுகமாக, எதிர்கால கடிதங்களை சேமிக்க. 337 00:14:08,940 --> 00:14:11,310 குறிப்பாக, malloc எனவே அவர் என்ன திரும்பிய? 338 00:14:11,310 --> 00:14:13,114 339 00:14:13,114 --> 00:14:14,851 >> பார்வையாளர்கள்: [செவிக்கு புலப்படாமல்] மீண்டும் வருகிறீர்களா? 340 00:14:14,851 --> 00:14:15,850 டேவிட் ஜே MALAN: நிச்சயமாக. 341 00:14:15,850 --> 00:14:18,850 என்று நினைவகம் முகவரியை திரும்பி, இது என்று ஒரு கற்பனை வழி, 342 00:14:18,850 --> 00:14:21,640 முகவரி கொடுக்கிறது என்று நினைவக முதல் பைட். 343 00:14:21,640 --> 00:14:25,460 எனக்கு நினைவில் தடுக்க ஆகிறது எவ்வளவு நினைவகம் நான் உண்மையில் 344 00:14:25,460 --> 00:14:27,140 ஒதுக்கீடு அல்லது ஐந்து malloc கேட்டார். 345 00:14:27,140 --> 00:14:28,384 >> இப்போது அந்த எவ்வளவு? 346 00:14:28,384 --> 00:14:30,550 நன்றாக, அங்கு கூட இங்கே அடைப்புக்குறிக்குள் நிறைய, 347 00:14:30,550 --> 00:14:32,970 malloc ஒரு ஒற்றை வாதம் ஆகும். 348 00:14:32,970 --> 00:14:37,250 நான் வி strlen குறிப்பிடாமல், அதனால் கொடுக்க என்னை போன்ற பல பைட்டுகள் கள் உள்ளன என, 349 00:14:37,250 --> 00:14:37,800 ஆனால் ஒரு சேர்க்க. 350 00:14:37,800 --> 00:14:38,300 ஏன்? 351 00:14:38,300 --> 00:14:39,030 352 00:14:39,030 --> 00:14:39,530 சரி? 353 00:14:39,530 --> 00:14:40,840 >> பார்வையாளர்கள்: பின்சாய்வுக்கோடானது 0. 354 00:14:40,840 --> 00:14:41,840 டேவிட் ஜே MALAN: நிச்சயமாக. 355 00:14:41,840 --> 00:14:43,423 நாம் ஒரு சிறிய செலவுகளுக்கான செய்ய கிடைத்துவிட்டது. 356 00:14:43,423 --> 00:14:45,970 ஒரு பின்சாய்வுக்கோடானது இல்லை, ஏனெனில் 0, நாங்கள் சிறப்பாக என்பதை நினைவில் விரும்புகிறேன். 357 00:14:45,970 --> 00:14:47,310 இல்லையெனில், நாங்கள் போகிறோம் ஒரு சரம் உருவாக்க வேண்டும் என்று 358 00:14:47,310 --> 00:14:49,170 சிறப்பு அழிப்பு இல்லை. 359 00:14:49,170 --> 00:14:52,640 >> இதற்கிடையில், தான் சூப்பர் இருக்க வேண்டும் குத, நான் sizeof (கரி) இல்லை 360 00:14:52,640 --> 00:14:55,730 வெறும் வழக்கு யாரோ என் இயங்குகிறது இல்லை CS50 பயன்பாட்டிற்கான மீது குறியீடு, 361 00:14:55,730 --> 00:14:58,220 ஆனால் ஒருவேளை வேறு ஒரு கணினி முற்றிலும், அங்கு எழுத்துகள் 362 00:14:58,220 --> 00:15:01,470 மாநாட்டின் மூலம், ஒரு பைட், ஆனால் இரண்டு பைட்டுகள், அல்லது அந்த விட பெரியது ஒன்று. 363 00:15:01,470 --> 00:15:04,490 இது தான் சூப்பர் என்று தான், பிழைகள் சூப்பர் தயங்கினர். 364 00:15:04,490 --> 00:15:06,940 என்றாலும், உண்மையில், அது தான் பெரும்பாலும் ஒரு 1 போகிறது. 365 00:15:06,940 --> 00:15:11,490 >> இப்போது, இதற்கிடையில், நான் போய் நகலெடுக்க சரம், டி அடைப்புக்குறி நான் டி அடைப்புக்குறி கள் சமம். 366 00:15:11,490 --> 00:15:14,962 நான் கடந்த வாரம் ஒத்திவைக்க வேண்டும் மூல குறியீடு என்ன நடக்கிறது பார்க்க. 367 00:15:14,962 --> 00:15:17,670 முக்கிய takeaway, ஆனால் காரணம் நான், பச்சை இப்போது குறியீடு வைத்தேன் 368 00:15:17,670 --> 00:15:22,520 , என்று மிகவும் கடைசி வரி ஏனெனில் டி அடைப்புக்குறி 0, toupper சமம் 369 00:15:22,520 --> 00:15:25,230 விளைவு உண்டு அனுகூலமாக சரம்? 370 00:15:25,230 --> 00:15:26,960 டி மற்றும் / அல்லது கள்? 371 00:15:26,960 --> 00:15:29,280 372 00:15:29,280 --> 00:15:30,580 குறியீடு என்று கடைசி வரி. 373 00:15:30,580 --> 00:15:32,930 374 00:15:32,930 --> 00:15:35,560 >> என்ன காரணம் தான், டி இந்த நேரத்தில், நடந்தது 375 00:15:35,560 --> 00:15:41,500 நான் சற்று கடைசி நடவடிக்கையாக மீளமை என்றால், நான் malloc அழைக்க போது, என்ன, நடந்தது 376 00:15:41,500 --> 00:15:45,380 நான் அடிப்படையில், நினைவகம் ஒரு துண்டின் பெற என்று அசல் அதே அளவு, 377 00:15:45,380 --> 00:15:47,020 என்று கணித தான் நான் செய்தேன். 378 00:15:47,020 --> 00:15:50,920 நான் முகவரி t சேமித்து நினைவகம் என்று துண்டின். 379 00:15:50,920 --> 00:15:53,370 இந்த நல்ல தெரிகிறது என்று மற்றும், அழகான நல்ல மற்றும் வெற்று, 380 00:15:53,370 --> 00:15:56,882 உண்மையில் நாம் என்ன வேண்டும், அங்கு இங்கே, அழைப்பு குப்பை மதிப்புகள் வைத்து. 381 00:15:56,882 --> 00:15:59,340 நினைவகம் என்று துண்டின் வலிமை மிகவும் நன்கு முன் பயன்படுத்தப்பட்டு வருகின்றன, 382 00:15:59,340 --> 00:16:00,940 ஒரு சில வினாடிகள் ஒரு சில நிமிடங்களுக்கு முன்பு. 383 00:16:00,940 --> 00:16:04,410 எனவே முற்றிலும் எண்கள் இருக்க முடியும் வெறும் விபத்தில் அங்கு அல்லது கடிதங்கள்,. 384 00:16:04,410 --> 00:16:08,580 ஆனால் அவர்கள் நான் வரை செல்லுபடியாகும் இல்லை என்னை நினைவகம் இந்த துண்டின் விரிவுப்படுத்த 385 00:16:08,580 --> 00:16:12,510 உண்மையான எழுத்துகள் கொண்ட, நான் அங்கு கண்ணி என்று செய்கிறது. 386 00:16:12,510 --> 00:16:13,180 சரி? 387 00:16:13,180 --> 00:16:16,180 >> எனவே இப்போது, க்ளைமாக்ஸ் இந்த மூன்று உதாரணங்கள் 388 00:16:16,180 --> 00:16:20,730 என்று வெளித்தோற்றத்தில், கடைசி நேரத்தில் முறியடிக்கப்பட்டது இந்த இடமாற்று உதாரணமாக, இந்த செயல்பாடு 389 00:16:20,730 --> 00:16:23,670 அர்த்தத்தில் வேலை அது ஒரு மற்றும் ப மாற்றப்பட்டது என்று. 390 00:16:23,670 --> 00:16:25,620 ஆனால், அது என்ன மற்ற அர்த்தத்தில் வேலை செய்யவில்லை? 391 00:16:25,620 --> 00:16:27,616 392 00:16:27,616 --> 00:16:28,614 சரி? 393 00:16:28,614 --> 00:16:29,612 >> பார்வையாளர்கள்: [செவிக்கு புலப்படாமல்]. 394 00:16:29,612 --> 00:16:35,600 395 00:16:35,600 --> 00:16:36,700 >> டேவிட் ஜே MALAN: நிச்சயமாக. 396 00:16:36,700 --> 00:16:39,530 நான் இந்த செயல்பாடு அழைக்க வேண்டும் என்றால் உதாரணமாக மற்றொரு இருந்து, 397 00:16:39,530 --> 00:16:42,870 , அங்கு முக்கிய போன்ற ஒரு செயல்பாடு இருந்து நான், ஒரு மாறி, x மற்றும் y வேண்டும் 398 00:16:42,870 --> 00:16:46,160 கடந்த வாரம், அதே குறியீடு, நான் x மற்றும் y உள்ள கடந்து 399 00:16:46,160 --> 00:16:49,860 இடமாற்றம், பின்னர் Swap-- இந்த அழைக்க, நிச்சயமாக, சரியான பதிப்பு 400 00:16:49,860 --> 00:16:52,220 நாம் பற்றி நீங்கள் என்ன ஆகிறது see-- அது வேலை செய்யவில்லை. 401 00:16:52,220 --> 00:16:53,770 எனவே பிழைத்திருத்தம் என்ன? 402 00:16:53,770 --> 00:16:56,850 >> சரி, அதனால் தான் இருக்க வேண்டும் தெளிவான, எனக்கு முன்னே போகட்டும் 403 00:16:56,850 --> 00:17:05,450 ஆகியவை இரண்டாவது இங்கே எனக்கு ஒரு கொடுக்க, மற்றும் பார்க்க நான் கடந்த ஒரு, காட்ட முடியும் என்றால், இது 404 00:17:05,450 --> 00:17:12,464 நான் கண்டுபிடிக்க முடியும் என்றால் நாம் பார்ப்போம் in-- இருக்கும் இந்த உண்மையான fast-- சரி, [செவிக்கு புலப்படாமல்]. 405 00:17:12,464 --> 00:17:18,440 406 00:17:18,440 --> 00:17:19,240 சரி, அங்கு அது. 407 00:17:19,240 --> 00:17:21,000 அதனால் நான் தட்டச்சு செய்கிறேன் கட்டளைகளை புறக்கணிக்க. 408 00:17:21,000 --> 00:17:23,780 நான் அதை எடுக்க வேண்டும் கடைசி நிமிடத்தில் ஒரு உதாரணம் 409 00:17:23,780 --> 00:17:27,960 கடந்த காலத்தில் இருந்து இது இப்போது இடமாற்று என்று அழைக்கப்படுகிறது. 410 00:17:27,960 --> 00:17:30,200 >> எனவே எந்த இடமாற்றம் அங்கு ஆகிறது நாம் கடந்த காலத்தில் விட்ட 411 00:17:30,200 --> 00:17:32,930 அதன்படி, நான் துவக்கப்படுத்தேன் 1 x மற்றும் 2, y. 412 00:17:32,930 --> 00:17:35,840 நான் 1 மற்றும் 2 கடந்து, இடமாற்று அழைக்க. 413 00:17:35,840 --> 00:17:37,930 பின்னர் இந்த செயல்பாடு சில உணர்வு வேலை, 414 00:17:37,930 --> 00:17:40,750 ஆனால் அது எந்த நிரந்தர இருந்தது x மற்றும் y மீது ஏற்படுத்தும். 415 00:17:40,750 --> 00:17:45,430 எனவே கையில் கேள்வி இப்போது எப்படி உள்ளது, நாம் உண்மையில் இந்த பிரச்சினையை சரி செய்ய? 416 00:17:45,430 --> 00:17:47,820 கையில் தீர்வு என்ன? 417 00:17:47,820 --> 00:17:53,150 >> சரி, இன்று புதிய உள்ளது swap.c, ல், வேறுபாடுகள் ஒரு ஜோடி கவனிக்க. 418 00:17:53,150 --> 00:17:54,700 x மற்றும் y அதே உள்ளன. 419 00:17:54,700 --> 00:17:57,250 ஆனால் என்ன தெளிவாக இருக்கிறது வரி 25 பற்றி பல்வேறு? 420 00:17:57,250 --> 00:17:58,880 421 00:17:58,880 --> 00:18:01,715 நீங்கள் நினைவில் இருந்தால், என்ன, அங்கே புதிய அது ஒரு இரண்டாவது முன்பு போல என்ன? 422 00:18:01,715 --> 00:18:02,565 >> பார்வையாளர்கள்: [செவிக்கு புலப்படாமல்]. 423 00:18:02,565 --> 00:18:03,440 >> டேவிட் ஜே MALAN: ஆமாம். 424 00:18:03,440 --> 00:18:06,680 எனவே ampersands ஒரு புதிய துண்டு உள்ளன இலக்கணத்தை மட்டும் இந்த திட்டத்தில், 425 00:18:06,680 --> 00:18:08,560 ஆனால் பொதுவாக CS50 உள்ள. 426 00:18:08,560 --> 00:18:10,680 தேதி, நான் நினைக்கவில்லை நாம் எந்த உதாரணங்கள் பார்த்திருக்கிறேன் 427 00:18:10,680 --> 00:18:14,070 அல்லது உண்மையில் எந்த அவற்றை பற்றி பேசினார் ஒருவேளை, தாமாகவே, வேறு விவரம், 428 00:18:14,070 --> 00:18:16,467 பிரிவில், இந்த மாதிரி ஒரு ampersand. 429 00:18:16,467 --> 00:18:19,300 சரி, அது உம்மைக்குறி ஒன்றாகும் மாறிவிடும் புதிய இலக்கணத்தை கடந்த துண்டுகள் 430 00:18:19,300 --> 00:18:20,174 நாம் கற்று கொள்ள போகிறோம். 431 00:18:20,174 --> 00:18:23,500 இதன் பொருள் ஆகும் சில மாறி முகவரி. 432 00:18:23,500 --> 00:18:25,070 என்ன முகவரி இடத்தில் x வாழ? 433 00:18:25,070 --> 00:18:26,510 ஆனால், y என்ன முகவரியை வாழ? 434 00:18:26,510 --> 00:18:28,700 ஏனெனில் முன் அடிப்படை பிரச்சனை 435 00:18:28,700 --> 00:18:32,970 என்று x மற்றும் y கடந்து நாம் உண்மையில் என்ன செய்ய வேண்டும் பிரதிகள், என 436 00:18:32,970 --> 00:18:38,780 ஒரு புதையல் போன்ற ஒன்று மாற்றுதல் வழங்க அங்கு x மற்றும் உண்மையில், y வழிவகுக்கிறது என்று வரைபடத்தில் 437 00:18:38,780 --> 00:18:41,910 அதனால், ரேம் உள்ளன இடமாற்று அந்த வரைபடத்தில் பின்பற்ற முடியும் 438 00:18:41,910 --> 00:18:47,760 x அல்லது y இடத்தை குறிக்கிறது எங்கு செல்ல மேலும் உண்மையான மதிப்புகள் மாற்ற 1 மற்றும் 2 439 00:18:47,760 --> 00:18:48,270 அங்கு. 440 00:18:48,270 --> 00:18:50,710 >> எனவே, மாற்று சற்று மாற்ற வேண்டும். 441 00:18:50,710 --> 00:18:53,760 முதல் பார்வையில், இந்த வலிமையை கரி நட்சத்திரம் ஒரு சிறிய இதே போல். 442 00:18:53,760 --> 00:18:54,850 உண்மையில் அது. 443 00:18:54,850 --> 00:18:59,635 ஒரு தரவு வகை என்ன ஒரு சுட்டிக்காட்டி இருக்கிறது, இந்த உயர்த்தி பகுதியை அடிப்படையாக? 444 00:18:59,635 --> 00:19:00,810 445 00:19:00,810 --> 00:19:01,620 அது ஒரு முழு எண்ணாக இருக்கிறது. 446 00:19:01,620 --> 00:19:04,880 >> எனவே, ஒரு இனி ஒரு முழு எண்ணாக இருக்கிறது, அது ஒரு முழு எண்ணாக முகவரி. 447 00:19:04,880 --> 00:19:07,910 அதே போல், ப இப்போது நடக்கிறது ஒரு முழு எண்ணாக முகவரி இருக்க வேண்டும். 448 00:19:07,910 --> 00:19:12,470 அதனால் நான் இப்போது மெயின் இருந்து இடமாற்று அழைக்க போது, நான் இடமாற்று 1 மற்றும் 2 கொடுக்க போவதில்லை. 449 00:19:12,470 --> 00:19:15,540 நான் அது போன்ற கொடுக்க போகிறேன் எருது ஒன்று மாடு ஒன்று, 450 00:19:15,540 --> 00:19:19,820 வழிவகுக்கும் என்று இரண்டு முகவரிகள் அவர்களின் உண்மையான இடங்களில் இடமாற்று 451 00:19:19,820 --> 00:19:21,310 என் கணினியின் நினைவகம். 452 00:19:21,310 --> 00:19:25,580 >> எனவே இப்போது, என் மீதமுள்ள செயல்படுத்த ஒரு சிறுவன் மாற்ற வேண்டும். 453 00:19:25,580 --> 00:19:28,650 என்ன என்பது வேறு விஷயம் குறியீடு இந்த மூன்று கோடுகள் இருக்கும்? 454 00:19:28,650 --> 00:19:31,350 இந்த மட்டமான நட்சத்திரங்கள் இருக்கிறது இடத்தில், சரியா? 455 00:19:31,350 --> 00:19:33,014 இங்கே என்ன நடக்கிறது? 456 00:19:33,014 --> 00:19:33,514 சரி? 457 00:19:33,514 --> 00:19:35,055 >> பார்வையாளர்கள்: [செவிக்கு புலப்படாமல்] வெளிப்படையாக தான். 458 00:19:35,055 --> 00:19:36,832 459 00:19:36,832 --> 00:19:37,990 >> டேவிட் ஜே MALAN: நிச்சயமாக. 460 00:19:37,990 --> 00:19:41,560 இந்த பின்னணியில் எனவே இந்த இல்லை சிறந்த வடிவமைப்பு முடிவு, ஒப்புக்கொண்டபடி, 461 00:19:41,560 --> 00:19:42,530 ஆண்டுகளுக்கு முன்பு. 462 00:19:42,530 --> 00:19:45,110 இந்த சூழலில், அங்கு நீங்கள் ஒரு நட்சத்திர இல்லை, 463 00:19:45,110 --> 00:19:48,240 மற்றும் நீங்கள் ஒரு தரவு வகை இல்லை, எண்ணாக போன்ற, உடனடியாக இடது, 464 00:19:48,240 --> 00:19:53,146 அதற்கு பதிலாக நீங்கள் தெளிவாக, ஒரு சம அடையாளம் இல்லை, இந்த சூழலில், நீங்கள் சொல்லும் போது ஒரு நட்சத்திரம், 465 00:19:53,146 --> 00:19:56,980 என்று சென்று பொருள் ஒரு தான் முகவரி. 466 00:19:56,980 --> 00:19:58,870 அதனால் பேச, புதையல் வரைபடம். 467 00:19:58,870 --> 00:20:01,720 >> இதற்கிடையில், வரி 37 இல், அதை அதே பொருள். 468 00:20:01,720 --> 00:20:05,460 முகவரி சென்று, அங்கு என்ன வைத்து? 469 00:20:05,460 --> 00:20:09,520 என்ன உள்ளது ப குறிப்பிடும் இடம். 470 00:20:09,520 --> 00:20:10,980 வேறுவிதமாக கூறினால், ப செல்கிறது. 471 00:20:10,980 --> 00:20:12,130 என்று மதிப்பு கிடைக்கும். 472 00:20:12,130 --> 00:20:15,620 சம படி, ஒரு சென்று பதிவு, வேலையை ஆபரேட்டர், 473 00:20:15,620 --> 00:20:17,010 அங்கு மதிப்பு வைத்து. 474 00:20:17,010 --> 00:20:19,272 >> இதேபோல், முழு எண்ணாக திறக்க ஒரு முழு எண்ணாக இருக்கிறது. 475 00:20:19,272 --> 00:20:20,730 எதுவும் திறக்க பற்றி மாற்ற வேண்டும். 476 00:20:20,730 --> 00:20:24,810 இது, Annenberg இருந்து ஒரு உதிரி கண்ணாடி சில பால் அல்லது ஆரஞ்சு சாறு. 477 00:20:24,810 --> 00:20:27,630 ஆனால் நான் சொல்ல ப போக வேண்டும். 478 00:20:27,630 --> 00:20:31,449 என்று இலக்கு சென்று அங்கு தற்காலிக மதிப்பு வைத்து. 479 00:20:31,449 --> 00:20:32,490 எனவே என்ன நடக்கிறது? 480 00:20:32,490 --> 00:20:36,540 நான் உண்மையில் என்றால், இந்த நேரத்தில் இடமாற்றம் அழைக்க போது இந்த முதல் தட்டில் இங்கே, முதன்மை பிரதிபலிக்கிறது 481 00:20:36,540 --> 00:20:42,270 இந்த இரண்டாவது தட்டில் இடமாற்று பிரதிபலிக்கிறது போது நான் உம்மை x மற்றும் உம்மைக்குறி y கடக்கிறேன் 482 00:20:42,270 --> 00:20:47,150 முக்கிய இடமாற்று இருந்து, தான், தெளிவாக இருக்க வேண்டும் இந்த ஸ்டேக் சட்டத்தில் பெறும் என்ன? 483 00:20:47,150 --> 00:20:48,700 484 00:20:48,700 --> 00:20:49,200 சரி? 485 00:20:49,200 --> 00:20:50,180 >> பார்வையாளர்கள்: [செவிக்கு புலப்படாமல்]. 486 00:20:50,180 --> 00:20:51,180 டேவிட் ஜே MALAN: நிச்சயமாக. 487 00:20:51,180 --> 00:20:53,129 x மற்றும் y முகவரி. 488 00:20:53,129 --> 00:20:55,170 நீங்கள் இந்த யோசிக்க முடியும் அஞ்சல் முகவரிகளை போல. 489 00:20:55,170 --> 00:20:58,772 33 ஆக்ஸ்போர்டு தெரு மற்றும் 35 ஆக்ஸ்போர்டு தெரு, மற்றும் நீங்கள் 490 00:20:58,772 --> 00:21:01,230 இரண்டு கட்டிடங்கள் செல்ல வேண்டும் அந்த இடங்களில் இருக்கும் என்று. 491 00:21:01,230 --> 00:21:04,680 >> இது ஒரு கேலிக்குரிய யோசனை தான் வகையான, ஆனால் அந்த நாம் முகவரியை அர்த்தம் தான். 492 00:21:04,680 --> 00:21:07,000 உலகில் முடியுமோ நீங்கள் அந்த இரண்டு ints கண்டுபிடிக்க? 493 00:21:07,000 --> 00:21:09,470 உலகில் நீங்கள் அந்த இரண்டு கட்டிடங்கள் கண்டுபிடிக்க? 494 00:21:09,470 --> 00:21:15,170 எனவே என்றால், இந்த நேரத்தில் நான் பிறகு இன்றைய மூல குறியீடு சென்று தொகுக்க 495 00:21:15,170 --> 00:21:22,110 இடமாற்றம் மற்றும் ரன் ./swap, இறுதியாக, ஐந்து முதல் முறையாக நாம் உண்மையில் அந்த பார்க்கிறோம் 496 00:21:22,110 --> 00:21:25,330 என் மதிப்புகள் நிச்சயமாக வெற்றிகரமாக மாற்றப்பட்டது. 497 00:21:25,330 --> 00:21:30,860 இப்போது, நாம் கூட எடுக்க முடியும் இந்த, சொல்ல, GDB குறிப்பு. 498 00:21:30,860 --> 00:21:32,740 >> எனவே, என்னை அதே கோப்பு கொண்டு செல்லலாம். 499 00:21:32,740 --> 00:21:35,010 என்னை போய் ./swap என்ற GDB இயக்க அனுமதிக்க. 500 00:21:35,010 --> 00:21:36,590 501 00:21:36,590 --> 00:21:40,547 இப்போது, இடமாற்று, நான் போக போகிறேன் மேலே மற்றும் முக்கிய ஒரு பிரேக் பாயிண்ட் அமைக்க. 502 00:21:40,547 --> 00:21:42,630 இப்போது நான் போக போகிறேன் மேலே நிரலை. 503 00:21:42,630 --> 00:21:45,810 இப்போது நாம் என் குறியீடு பார்க்கிறோம் அந்த வரிசையில் உள்ள இடைநிறுத்தப்பட்டுள்ளது. 504 00:21:45,810 --> 00:21:48,330 >> நான் மேலே மற்றும் அச்சு சென்றால் x, நான் இங்கே என்ன பார்க்க வேண்டும்? 505 00:21:48,330 --> 00:21:49,314 506 00:21:49,314 --> 00:21:49,980 இது ஒரு கேள்வி. 507 00:21:49,980 --> 00:21:51,030 508 00:21:51,030 --> 00:21:51,530 மீண்டும் சொல்ல? 509 00:21:51,530 --> 00:21:52,295 >> பார்வையாளர்கள்: [செவிக்கு புலப்படாமல்]. 510 00:21:52,295 --> 00:21:53,910 >> டேவிட் ஜே MALAN: எனவே சீரற்ற எண்கள், ஒருவேளை. 511 00:21:53,910 --> 00:21:56,010 நான் அதிர்ஷ்டசாலி, மற்றும் அது தான் 0 போன்ற நல்ல மற்றும் எளிய. 512 00:21:56,010 --> 00:21:57,230 ஆனால் ஒருவேளை அது சில சீரற்ற எண். 513 00:21:57,230 --> 00:21:58,090 இந்த வழக்கில், நான் அதிர்ஷ்டம் கிடைத்தது. 514 00:21:58,090 --> 00:21:59,030 இது 0 ஆக நடக்கிறது. 515 00:21:59,030 --> 00:22:00,780 ஆனால் அது உண்மையில் அதிர்ஷ்டம் வரை, ஏனெனில் நான் 516 00:22:00,780 --> 00:22:06,280 அடுத்த தட்டச்சு பின்னர் அச்சு x என்று உள்ளது குறியீடு வரி, வரி 19, கொலை. 517 00:22:06,280 --> 00:22:10,942 >> இதற்கிடையில், நான் தட்டச்சு செய்தால் அடுத்த மீண்டும், இப்போது நான் 2 பார்க்க போகிறேன், y அவுட் அச்சிட. 518 00:22:10,942 --> 00:22:13,900 நான் அடுத்த தட்டச்சு செய்தால் இப்போது, அது நடக்கிறது குழப்பமான ஒரு சிறிய பெற, இப்போது, ஏனெனில், 519 00:22:13,900 --> 00:22:17,250 வைட்டமின் தோன்றும் போகிறது திரையில் அதை போல். x 1. 520 00:22:17,250 --> 00:22:18,606 >> மீண்டும் இந்த செய்வோம். 521 00:22:18,606 --> 00:22:20,480 இப்போது, இங்கே எங்கே விஷயங்களை சுவாரசியமான கிடைக்கும். 522 00:22:20,480 --> 00:22:21,580 523 00:22:21,580 --> 00:22:26,580 நான் இடமாற்று அல்லது படி அழைக்கிறேன் முன் அது, ஒரு சிறிய கண்ணோட்டம் எடுத்து விடுங்கள். 524 00:22:26,580 --> 00:22:28,980 x, மீண்டும், 1. 525 00:22:28,980 --> 00:22:33,240 ஒய், நிச்சயமாக, விரைவான நல்லறிவு ஆகிறது எனவே கடினமாக இருக்கிறது, 2 சரிபார்க்க. 526 00:22:33,240 --> 00:22:35,740 ஆனால் உம்மைக்குறி x என்ன? 527 00:22:35,740 --> 00:22:36,760 528 00:22:36,760 --> 00:22:39,350 பதில், அது பங்கி தேடும். 529 00:22:39,350 --> 00:22:43,500 ஆனால் அடைப்புக்குறிக்குள் எண்ணாக நட்சத்திர தான் இந்த கூறி மொத்த உள்நாட்டு உற்பத்தியில் வழி ஒரு முகவரியை ஆகிறது. 530 00:22:43,500 --> 00:22:48,290 இது, அது ஒரு ஒரு சுட்டிக்காட்டி ஒரு முழு எண்ணாக தான் முழு எண்ணாக அல்லது ஒரு முகவரியை அறியப்படுகிறது. 531 00:22:48,290 --> 00:22:49,742 >> இந்த பைத்தியம் தான் என்ன? 532 00:22:49,742 --> 00:22:51,825 நாம் பார்த்ததில்லை மிகவும் முன் போல். 533 00:22:51,825 --> 00:22:53,650 534 00:22:53,650 --> 00:22:58,120 எனவே இந்த என் கணினியின் முகவரி ஆகிறது x வாழ நடக்கும் இடத்தில் நினைவு. 535 00:22:58,120 --> 00:22:59,040 இது எருது ஒன்று இருக்கிறது. 536 00:22:59,040 --> 00:23:01,290 இந்த வெளிப்படையாக, ஏன், நான் அம்புகள் வரைய தொடங்கினார், 537 00:23:01,290 --> 00:23:03,340 அதற்கு பதிலாக எண்கள், யார் உண்மையில் அக்கறை ஏனெனில் 538 00:23:03,340 --> 00:23:06,890 உங்கள் எண்ணாக ஒரு குறிப்பிட்ட உள்ளது என்று பெரிய என்று என்று முகவரி. 539 00:23:06,890 --> 00:23:12,160 ஆனால் bffff0c4, இந்த அனைத்து உள்ளன உண்மையில் அறுபதின்ம இலக்கங்கள், 540 00:23:12,160 --> 00:23:13,720 எஃப் மூலம் 0 உள்ளன. 541 00:23:13,720 --> 00:23:16,590 >> எனவே நாம் வாழ்கிறது போவதில்லை அந்த விஷயங்கள் என்ன நீண்ட. 542 00:23:16,590 --> 00:23:19,400 ஆனால் நான், y அவுட் அச்சிட என்றால், நிச்சயமாக, நான் 2 பார்க்கிறது. 543 00:23:19,400 --> 00:23:22,440 ஆனால் உம்மைக்குறி Y, நான் இந்த முகவரியை பார்க்கவும். 544 00:23:22,440 --> 00:23:26,527 அறிவிப்பு, ஆர்வம், தவிர x மற்றும் y எவ்வளவு தூரம் இருக்கும்? 545 00:23:26,527 --> 00:23:27,985 நீங்கள் முகவரியை மிகவும் புறக்கணிக்க முடியாது. 546 00:23:27,985 --> 00:23:29,330 547 00:23:29,330 --> 00:23:29,920 நான்கு பைட்டுகள். 548 00:23:29,920 --> 00:23:33,510 என்று தொடர்ந்து தான் எங்கள் முந்தைய ஒரு முழு எண்ணாக எப்படி பெரிய உள்ளது என்று கூறுகின்றனர்? 549 00:23:33,510 --> 00:23:34,130 நான்கு பைட்டுகள். 550 00:23:34,130 --> 00:23:37,420 அதனால் எல்லாம் நிற்பது தெரிகிறது நன்றாக, நீங்கள் நினைவக நம்புகிறேன் என. 551 00:23:37,420 --> 00:23:40,010 >> எனவே இப்போது, தான் வேகமாக முன்னோக்கி செல்லலாம் இந்த கதை முடிவில். 552 00:23:40,010 --> 00:23:43,290 , தான் போய் படி தட்டச்சு செய்யலாம் இடமாற்று செயல்பாடு பற்றிய டைவ். 553 00:23:43,290 --> 00:23:46,880 இப்போது நான் ஒரு தட்டச்சு செய்தால், அது, கவனிக்கிறது x முகவரி ஒத்ததாக. 554 00:23:46,880 --> 00:23:52,130 நான் கேட்ச் தட்டச்சு செய்தால், அது ஒரே மாதிரியாக தான் y முகவரி. 555 00:23:52,130 --> 00:23:57,020 அதனால் நான் என்ன பார்க்க ஒரு முகவரிக்கு சென்று? 556 00:23:57,020 --> 00:23:58,120 எனவே, ஒரு நட்சத்திரம் அச்சிட. 557 00:23:58,120 --> 00:24:00,130 எனவே நட்சத்திர இந்த சூழலில், அங்கே போ. 558 00:24:00,130 --> 00:24:02,730 உம்மைக்குறி முகவரி என்ன அர்த்தம். 559 00:24:02,730 --> 00:24:05,000 எனவே ஒரு வழிமுறையாக 1 நடித்திருந்தனர். 560 00:24:05,000 --> 00:24:09,590 மற்றும் அச்சு நட்சத்திர ப எனக்கு 2 கொடுக்கிறது. 561 00:24:09,590 --> 00:24:15,750 >> என்னை கணம், கருதி, குறைந்தது குறியீடு என்று 562 00:24:15,750 --> 00:24:18,950 இருக்க முடியும் இப்போது இயக்க செல்கிறது அந்த வழியில் மூலம் கூறினார். 563 00:24:18,950 --> 00:24:21,150 ஆனால் நாம் நீண்ட காலத்திற்கு முன்பே இந்த யோசனை மீண்டும் சொல்கிறேன். 564 00:24:21,150 --> 00:24:23,850 இடமாற்று எனவே இந்த பதிப்பு இப்போது சரியான மற்றும் அனுமதிக்கிறது 565 00:24:23,850 --> 00:24:26,650 இந்த குறிப்பிட்ட தரவு வகை மாற்ற. 566 00:24:26,650 --> 00:24:29,120 >> எனவே எந்த கேள்விகள் பின்னர் இடமாற்று மீது? 567 00:24:29,120 --> 00:24:29,890 நட்சத்திரம்? 568 00:24:29,890 --> 00:24:30,690 முகவரி என்ன? 569 00:24:30,690 --> 00:24:33,270 மற்றும் நீங்கள், பார்க்க வேண்டும் பிரச்சனை, மாதிரியான, 4 அமைந்தது 570 00:24:33,270 --> 00:24:37,310 ஆனால் பிரச்சனை 5, நிச்சயமாக, எப்படி இந்த அமைந்தது விஷயங்களை பயனுள்ளதாக இருக்கும் மற்றும் பெற அதிக 571 00:24:37,310 --> 00:24:39,584 இதன் விளைவாக, இன்னும் வசதியாக. 572 00:24:39,584 --> 00:24:40,430 எல்லாவற்றையும்? 573 00:24:40,430 --> 00:24:40,930 சரி. 574 00:24:40,930 --> 00:24:44,350 எனவே malloc, இந்த செயல்பாடு மீண்டும், என்று தான் நினைவகம், நினைவு ஒதுக்கீடு 575 00:24:44,350 --> 00:24:45,330 ஒதுக்கீடு. 576 00:24:45,330 --> 00:24:47,024 ஏன் இந்த பயனுள்ளதாக இருக்கும்? 577 00:24:47,024 --> 00:24:48,940 சரி, இந்த நேரத்தில், நீங்கள் malloc பயன்படுத்தி. 578 00:24:48,940 --> 00:24:52,230 நீங்கள் இப்போது எப்படி கருத்தில் என்றால் வேலை GetString, மறைமுகமாக, அது தான் 579 00:24:52,230 --> 00:24:56,140 ஒரு துண்டின் ஒருவர் கேட்டு நினைவகம், எப்போது பயனர் வகையான ஒரு சரம் 580 00:24:56,140 --> 00:24:59,040 , நிச்சயமாக நாம் ஏனெனில் என்று எனக்கு தெரியாது, CS50 ஊழியர்கள் என, 581 00:24:59,040 --> 00:25:02,710 எவ்வளவு பெரிய அந்த சரங்களை என்று மனிதர்கள் இருக்கலாம் தட்டச்சு செய்ய போகிறோம். 582 00:25:02,710 --> 00:25:07,910 >> எனவே, முதல் முறையாக, ஆரம்பிப்போம் தலாம் மீண்டும் எப்படி CS50 நூலகம் படைப்புகள், 583 00:25:07,910 --> 00:25:10,990 உதாரணங்கள் ஒரு ஜோடி மூலம் என்று நம்மை இட்டு. 584 00:25:10,990 --> 00:25:15,300 நான் gedit திறந்து என்றால் மற்றும், scanf 0 திறந்து 585 00:25:15,300 --> 00:25:17,055 நாம் பின்வரும் குறியீடு பார்க்க போகிறோம். 586 00:25:17,055 --> 00:25:18,720 587 00:25:18,720 --> 00:25:23,530 இணையதளத்தில் கிடைக்கும் scanf 0, இன்று, குறியீடு ஒப்பீட்டளவில் சில வரிகளில் இருக்கிறது 588 00:25:23,530 --> 00:25:25,351 இங்கே, மூலம் 20 14. 589 00:25:25,351 --> 00:25:26,600 மற்றும் நாம் என்ன செய்து பார்ப்போம். 590 00:25:26,600 --> 00:25:28,920 அது ஒரு முழு எண்ணாக, x என்று அறிவிக்கிறது. 591 00:25:28,920 --> 00:25:30,850 ஏதாவது, எண் தயவு செய்து கூறுகிறார். 592 00:25:30,850 --> 00:25:33,940 இப்போது அது, scanf% நான் & x, என்கிறார். 593 00:25:33,940 --> 00:25:35,620 எனவே அங்கு புதிய பொருட்களை ஒரு கொத்து இருக்கிறது. 594 00:25:35,620 --> 00:25:38,420 >> ஆனால், scanf, நீங்கள் வகையான யோசிக்க முடியும் பற்றிய printf எதிர். 595 00:25:38,420 --> 00:25:40,090 printf, நிச்சயமாக, திரையில் அச்சிட்டு. 596 00:25:40,090 --> 00:25:44,410 பயனர் இருந்து ஸ்கேன், scanf வகையான விசைப்பலகை ஏதாவது அவர் தட்டச்சு. 597 00:25:44,410 --> 00:25:46,550 >> % நான் தான் printf போல் உள்ளது. 598 00:25:46,550 --> 00:25:49,410 இந்த எதிர்பார்க்க பொருள் பயனர் ஒரு முழு எண்ணாக தட்டச்சு செய்ய. 599 00:25:49,410 --> 00:25:52,820 இப்போது, நீங்கள் ஏன் நான் நினைக்கிறேன் scanf & x கடந்து? 600 00:25:52,820 --> 00:25:54,030 601 00:25:54,030 --> 00:25:57,770 என்றால், scanf வாழ்க்கை நோக்கம் பயனர் ஒன்று பெற உள்ளது, 602 00:25:57,770 --> 00:26:02,480 என்ன அர்த்தம் உள்ளது இப்போது, அதை கடந்து, மற்றும் x? 603 00:26:02,480 --> 00:26:02,980 சரி? 604 00:26:02,980 --> 00:26:03,896 >> பார்வையாளர்கள்: [செவிக்கு புலப்படாமல்]. 605 00:26:03,896 --> 00:26:05,540 606 00:26:05,540 --> 00:26:06,540 டேவிட் ஜே MALAN: நிச்சயமாக. 607 00:26:06,540 --> 00:26:12,900 என்ன நான், மனித, என் உள்ளீடு தட்டச்சு அந்த இடத்தில் காப்பாற்றி கொள்ள போகிறது. 608 00:26:12,900 --> 00:26:17,660 இது, வெறும் நினைவு, போதுமானதாக இல்லை நாம் ஏற்கனவே பார்த்த ஏனெனில், x இல் அனுப்ப, 609 00:26:17,660 --> 00:26:21,630 எந்த நேரத்தில் நீங்கள், ஒரு மூல மாறி கடந்து ஒரு முழு எண்ணாக போல, வேறு சில செயல்பாடு, 610 00:26:21,630 --> 00:26:25,640 நிச்சயமாக, அது மாற்ற முடியும் மாறி, ஆனால் நிரந்தரமாக. 611 00:26:25,640 --> 00:26:27,360 இது முக்கிய ஒரு விளைவை முடியாது. 612 00:26:27,360 --> 00:26:29,420 அது மட்டும் அதன் சொந்த நகலை மாற்ற முடியும். 613 00:26:29,420 --> 00:26:32,560 ஆனால், அதற்கு பதிலாக, நீங்கள் செய்ய என்னை உண்மையான முழு எண்ணாக கொடுக்க, 614 00:26:32,560 --> 00:26:36,640 ஆனால் நீங்கள் என்னை திசைகளில் கொடுக்க என்று எண்ணாக, நான் இப்போது, என scanf இருப்பது 615 00:26:36,640 --> 00:26:41,050 நிச்சயமாக, நான் அந்த பின்பற்ற முடியும் உரையாற்ற அங்கு ஒரு எண்ணை வைத்து 616 00:26:41,050 --> 00:26:43,280 அதனால் நீங்கள் அதை அணுக வேண்டும். 617 00:26:43,280 --> 00:26:45,120 >> நான் இந்த நிரலை இயக்க போது, நாம் பார்ப்போம். 618 00:26:45,120 --> 00:26:49,660 Scanf 0 டாட் சாய்வு செய்ய, 0 scanf. 619 00:26:49,660 --> 00:26:54,030 நான் இப்போது ஒரு எண்ணை டைப் செய்தால், 50 போன்ற, 50 நன்றி. 620 00:26:54,030 --> 00:26:58,150 நான் இப்போது போன்ற பல தட்டச்சு செய்தால் எதிர்மறை 1, 1 எதிர்மறை. 621 00:26:58,150 --> 00:27:04,200 நான் இப்போது HM, 1.5 போன்ற ஒரு எண்ணை டைப். 622 00:27:04,200 --> 00:27:06,030 ஏன் என் திட்டத்தை என்னை புறக்கணிக்க? 623 00:27:06,030 --> 00:27:07,300 624 00:27:07,300 --> 00:27:09,880 சரி, ஏனெனில் வெறுமனே, நான் சொன்னேன் அது ஒரு முழு எண்ணாக மட்டும் எதிர்பார்க்க. 625 00:27:09,880 --> 00:27:10,380 சரி. 626 00:27:10,380 --> 00:27:11,630 அதனால் இந்த ஒரு பதிப்பு தான். 627 00:27:11,630 --> 00:27:16,600 ஒரு காடி வெட்டு வரை பொருட்களை எடுத்து செல்லலாம் மற்றும் இது நல்லது அல்ல என்று முன்மொழிய. 628 00:27:16,600 --> 00:27:20,530 மற்றும் இங்கு ஒரு மிக எளிய உதாரணம் உள்ளது நாம் எழுதி குறியீடு தொடங்க எப்படி 629 00:27:20,530 --> 00:27:24,450 மற்ற மக்கள் சுரண்ட முடியும் என்று, அல்லது கெட்ட விஷயங்களை செய்து சமரசம். 630 00:27:24,450 --> 00:27:28,336 எனவே வரி 16, மிகவும் ஒத்த ஆவி முன், 631 00:27:28,336 --> 00:27:29,960 ஆனால் நான் அதை இந்த நேரத்தில் எண்ணாக பிரகடனம். 632 00:27:29,960 --> 00:27:32,970 நான் சரம் aka, அது, கரி நட்சத்திர அறிவித்தார். 633 00:27:32,970 --> 00:27:35,190 >> ஆனால் உண்மையில் என்ன அர்த்தம்? 634 00:27:35,190 --> 00:27:38,790 அதனால் நான் ஒரு முகவரியில் குறிப்பிட வேண்டாம் என்றால் நான் தன்னிச்சையாக போன் செய்கிறேன், தாங்கல், 635 00:27:38,790 --> 00:27:43,370 ஆனால் நான் simple-- இருக்க வேண்டும், அது கள் அழைக்க முடியும் பின்னர் நான் இதை செய்ய எனக்கு விளக்க, 636 00:27:43,370 --> 00:27:48,630 நீங்கள் முந்தைய அடிப்படையில், முடிந்தால் தர்க்கம், scanf வரி 18 ல், என்ன செய்கிறார் 637 00:27:48,630 --> 00:27:55,000 பாஸ்% s மற்றும் தாங்கல் என்றால், ஒரு முகவரியை ஆகும்? 638 00:27:55,000 --> 00:27:58,210 நீங்கள் விண்ணப்பிக்க வேண்டும் scanf, என்ன பதிப்பு 0 அதே தர்க்கம், 639 00:27:58,210 --> 00:28:00,640 இங்கே செய்ய முயற்சி செய்ய போகிறீர்கள் போது, பயனர் வகைகள் ஏதாவது? 640 00:28:00,640 --> 00:28:02,630 641 00:28:02,630 --> 00:28:03,409 சரி? 642 00:28:03,409 --> 00:28:04,407 >> பார்வையாளர்கள்: [செவிக்கு புலப்படாமல்]. 643 00:28:04,407 --> 00:28:07,401 644 00:28:07,401 --> 00:28:08,890 >> டேவிட் ஜே MALAN: நிச்சயமாக. 645 00:28:08,890 --> 00:28:11,577 Scanf, தர்க்கம் இதற்கு, சரம் எடுக்க போகிறது 646 00:28:11,577 --> 00:28:13,410 மனித தட்டச்சு , அது இப்போது ஒரு சரம் தான் in-- 647 00:28:13,410 --> 00:28:15,790 அதை, மறைமுகமாக, ஒரு எண் அல்ல அவன் அல்லது அவள் cooperates-- என்றால் 648 00:28:15,790 --> 00:28:19,310 மற்றும் அது வைக்க முயற்சி நடக்கிறது என்ன முகவரியை நினைவகம் சரம் 649 00:28:19,310 --> 00:28:20,340 தாங்கல் குறிப்பிடுகிறது. 650 00:28:20,340 --> 00:28:23,870 இந்த பெரிய, தாங்கல், ஏனெனில் உண்மையில் ஒரு முகவரியை கருதப்படவில்லை. 651 00:28:23,870 --> 00:28:30,470 >> ஆனால் நான் இந்த திட்டம் ஒரு ஆண்டில் தரமற்ற கூறிக்கொள்கிறேன் மிக கடுமையான முறையில், மதிப்பு என்ன காரணம் 652 00:28:30,470 --> 00:28:31,330 இயல்பாக தாங்குவதற்கு? 653 00:28:31,330 --> 00:28:33,380 654 00:28:33,380 --> 00:28:34,790 நான் என்ன ஒரு துவக்கப்படும்? 655 00:28:34,790 --> 00:28:35,770 நினைவகம் என்ன துண்டின்? 656 00:28:35,770 --> 00:28:37,480 657 00:28:37,480 --> 00:28:38,620 நான் இல்லை, சரியான? 658 00:28:38,620 --> 00:28:42,265 >> எனவே நான் ஒதுக்கீடு செய்த கூட ஒரு இனி கள் என எரிப்பதை நட்சத்திர, 659 00:28:42,265 --> 00:28:48,030 அதற்கு பதிலாக என்று, அதனால் buffer-- மாறி பெயர் வரைய 660 00:28:48,030 --> 00:28:53,380 நான் இல்லை என்றால் இப்போது buffer-- இங்கு GetString அல்லது malloc என்று, 661 00:28:53,380 --> 00:28:56,030 திறம்பட என்று அர்த்தம் தாங்கல் சில குப்பை மதிப்பு உள்ளது. 662 00:28:56,030 --> 00:28:57,030 >> இப்போது என்ன அர்த்தம்? 663 00:28:57,030 --> 00:29:00,220 அதை நான் scanf கூறினார் என்று பொருள் பயனர் ஒரு சரம் எதிர்பார்க்க. 664 00:29:00,220 --> 00:29:01,300 நீங்கள் என்ன தெரியுமா? 665 00:29:01,300 --> 00:29:03,883 என்ன இந்த விஷயம் சுட்டி to-- நான் கேள்வி குறி வரைந்து, 666 00:29:03,883 --> 00:29:07,060 ஆனால் உண்மையில், அது இருக்க போகிறது Ox1, 2, 3, போன்ற ஏதாவது சரியான? 667 00:29:07,060 --> 00:29:10,730 இது சில போலி மதிப்பு என்று தான் முன் இருந்து இருக்க நடக்கிறது. 668 00:29:10,730 --> 00:29:13,440 எனவே வேறு வழி வைக்க, அது தான் இடையக என்றாலும் 669 00:29:13,440 --> 00:29:16,180 நினைவகத்தில் ஏதாவது சுட்டி. 670 00:29:16,180 --> 00:29:17,610 நான் என்ன யோசனை. 671 00:29:17,610 --> 00:29:24,130 >> நான் இப்போது காபே தட்டச்சு என்றால், அது நடக்கிறது அங்கு கிராம் ஒரு பி / இ 0 வைக்க முயற்சி செய்ய வேண்டும். 672 00:29:24,130 --> 00:29:25,530 ஆனால் யார் என்ன தெரியும்? 673 00:29:25,530 --> 00:29:27,480 கடந்த காலத்தில், எந்த நாங்கள் தொட முயற்சி செய்து நேரம் 674 00:29:27,480 --> 00:29:29,770 அல்ல என்று நினைவகம் எங்களுக்கு, என்ன நடந்தது? 675 00:29:29,770 --> 00:29:31,020 676 00:29:31,020 --> 00:29:32,870 அல்லது கிட்டத்தட்ட ஒவ்வொரு முறையும். 677 00:29:32,870 --> 00:29:34,310 அடுக்கு தவறு, சரியான? 678 00:29:34,310 --> 00:29:37,829 >> அது தான் இந்த அம்பு, எனக்கு எதுவும் தெரியாது சுட்டி காட்டியது. அதை சில சீரற்ற மதிப்பு தான். 679 00:29:37,829 --> 00:29:40,370 மற்றும், நிச்சயமாக, நீங்கள் விளக்குவது என்றால் ஒரு முகவரியை ஒரு சீரற்ற மதிப்பு, 680 00:29:40,370 --> 00:29:42,610 நீங்கள் போக போகிறது சில சீரற்ற இலக்கு. 681 00:29:42,610 --> 00:29:46,810 எனவே காபே விபத்தில் உண்மையில் வலிமை இங்கே இந்த வழக்கில் என் திட்டம். 682 00:29:46,810 --> 00:29:50,600 >> எனவே நாம் அந்த கிட்டத்தட்ட மோசமான என்ன செய்ய முடியும்? 683 00:29:50,600 --> 00:29:52,660 இந்த மூன்றாவது கருத்தில் scanf இறுதி உதாரணம். 684 00:29:52,660 --> 00:29:53,890 685 00:29:53,890 --> 00:29:56,870 இந்த பதிப்பு என்ன அர்த்தத்தில் நல்லது? 686 00:29:56,870 --> 00:29:57,990 687 00:29:57,990 --> 00:30:01,400 நீங்கள் வசதியாக இருந்தால் முந்தைய பிரச்சினை, இந்த நல்லது. 688 00:30:01,400 --> 00:30:02,250 ஏன்? 689 00:30:02,250 --> 00:30:03,250 >> பார்வையாளர்கள்: [செவிக்கு புலப்படாமல்]. 690 00:30:03,250 --> 00:30:06,235 691 00:30:06,235 --> 00:30:07,110 டேவிட் ஜே MALAN: நல்ல. 692 00:30:07,110 --> 00:30:09,970 வரி 16 எனவே, இந்த விஷயத்தில் உணர்வு, நல்லது 693 00:30:09,970 --> 00:30:12,030 நாங்கள் வெளிப்படையாக இருக்கிறோம் என்று சில நினைவக ஒதுக்கீடு. 694 00:30:12,030 --> 00:30:14,190 நாம் malloc பயன்படுத்தி நாம் வாரம் 2 பயன்படுத்தி 695 00:30:14,190 --> 00:30:16,060 ஒரு வரிசை அறிவித்தார் அணுகுமுறை. 696 00:30:16,060 --> 00:30:18,130 மற்றும் நாம் ஒரு சரம் முன் கூறினார் வெறும் எழுத்துக்கள் ஒரு வரிசை உள்ளது, 697 00:30:18,130 --> 00:30:19,690 எனவே இந்த முற்றிலும் நியாயமான உள்ளது. 698 00:30:19,690 --> 00:30:22,910 ஆனால் அது, நிச்சயமாக, தான் நீங்கள் 16, நிலையான அளவு கவனிக்க. 699 00:30:22,910 --> 00:30:25,440 >> எனவே இந்த திட்டத்தை ஆகிறது முற்றிலும் பாதுகாப்பான, நான் தட்டச்சு செய்தால் 700 00:30:25,440 --> 00:30:29,760 ஒரு பாத்திரம் சரங்களை, இரண்டு பாத்திரம் சரங்களை, 15 பாத்திரம் சரங்களை. 701 00:30:29,760 --> 00:30:34,970 ஆனால் விரைவில் நான் 16 தட்டச்சு தொடங்கும் என, 17, 18, 1000 தன்மையை சரங்களை, 702 00:30:34,970 --> 00:30:37,390 எங்கே என்று சரம் முடிவடையும் போகிறது? 703 00:30:37,390 --> 00:30:39,570 அது ஓரளவு இங்கே முடிவடையும் நடக்கிறது. 704 00:30:39,570 --> 00:30:42,820 ஆனால் யார் என்ன வேறு தெரிகிறது எல்லைகளை தாண்டி இருக்கிறது 705 00:30:42,820 --> 00:30:44,270 இந்த குறிப்பிட்ட வரிசை? 706 00:30:44,270 --> 00:30:48,015 >> நான் என்றாலும் அது தான் இங்கே 16 பெட்டிகள் அறிவித்தார். 707 00:30:48,015 --> 00:30:49,300 708 00:30:49,300 --> 00:30:52,690 எனவே அனைத்து 16 வரைந்து விட, நாம் தருகிறேன் நான் 16 வரையப்பட்ட அந்த நடிக்கிறது. 709 00:30:52,690 --> 00:30:56,540 ஆனால் நான் ஒரு சரம் படிக்க முயற்சி என்றால் 50 எழுத்துக்களை போல, நீண்ட இருக்கிறது, 710 00:30:56,540 --> 00:31:01,270 நான் வைத்து தொடங்க போகிறேன் A, B, C, D, x, y, z. 711 00:31:01,270 --> 00:31:04,916 இந்த மறைமுகமாக ஆகிறது வேறு சில நினைவக பிரிவில் 712 00:31:04,916 --> 00:31:06,790 என்று, மீண்டும், உண்டாக்கும் என் திட்டத்தை செயலிழக்க 713 00:31:06,790 --> 00:31:10,600 நான் கேட்டேன், ஏனெனில் வெறும் 16 பைட்டுகள் விட எதுவும். 714 00:31:10,600 --> 00:31:12,260 >> எனவே யார் கவலைப்படுகிறார்கள்? 715 00:31:12,260 --> 00:31:13,880 சரி, இங்கே CS50 நூலகம் தான். 716 00:31:13,880 --> 00:31:17,220 இந்த மிக தான் மேலே வழிமுறைகளை போல. 717 00:31:17,220 --> 00:31:21,670 CS50 நூலகம், இந்த நேரத்தில், வரி 52 இந்த வரி இருந்தது. 718 00:31:21,670 --> 00:31:23,680 நாம், typedef பார்த்து, அல்லது நீங்கள் typedef பார்ப்பீர்கள் 719 00:31:23,680 --> 00:31:27,930 ஒரு உருவாக்குகிறது இது pset 4, பொருள் எரிப்பதை நட்சத்திர மேலும் இருக்க முடியும் அதன்படி 720 00:31:27,930 --> 00:31:29,290 வெறுமனே சரம் என குறிப்பிடப்படுகிறது. 721 00:31:29,290 --> 00:31:31,540 எனவே, இந்த ஒன்றாகும் சில பயிற்சி சக்கரங்கள் 722 00:31:31,540 --> 00:31:34,120 பேட்டை அடியில் ரகசியமாக பயன்படுத்தப்படுகிறது. 723 00:31:34,120 --> 00:31:36,490 >> இதற்கிடையில், இங்கே getchar, விழா. 724 00:31:36,490 --> 00:31:38,190 இப்போது வெளிப்படையாக, அது எந்த உடல் இருக்கிறது. 725 00:31:38,190 --> 00:31:40,273 உண்மையில், நான் வைத்திருக்கிறேன் என்றால் உருட்டுதல், நான் உண்மையில் செய்ய 726 00:31:40,273 --> 00:31:42,080 எந்த செயலாக்கங்கள் பார்க்க இந்த செயல்பாடுகளை. 727 00:31:42,080 --> 00:31:43,140 728 00:31:43,140 --> 00:31:45,516 ஒரு நல்லறிவு காசோலை என, அது ஏன்? 729 00:31:45,516 --> 00:31:46,795 >> பார்வையாளர்கள்: [செவிக்கு புலப்படாமல்]. 730 00:31:46,795 --> 00:31:47,670 டேவிட் ஜே MALAN: ஆமாம். 731 00:31:47,670 --> 00:31:48,950 எனவே இந்த தலைப்பு கோப்பு உள்ளது. 732 00:31:48,950 --> 00:31:52,520 மற்றும் தலைப்பு கோப்புகள் முன்மாதிரிகளை கொண்டிருக்கின்றன, பிளஸ் வேறு சில விஷயங்களை, அது தெரிகிறது 733 00:31:52,520 --> 00:31:53,780 typedefs போல. 734 00:31:53,780 --> 00:31:56,910 ஆனால் CS50.c, நாம் சொல்லியிருக்கிறோம் இது நேரடி நீங்கள் ஒருபோதும், 735 00:31:56,910 --> 00:32:02,100 ஆனால் CS50 சாதனம் வருகிறது அனைத்து இந்த நேரத்தில், ஆழமான அதன் கோப்புறைகளை உள்ளே, 736 00:32:02,100 --> 00:32:04,990 ஒரு முழு இல்லை என்று அறிவிப்பு இங்கே உள்ள செயல்பாடுகளை மொத்தமாக. 737 00:32:04,990 --> 00:32:06,720 >> உண்மையில், கீழே பார்ப்போம். 738 00:32:06,720 --> 00:32:08,810 இப்போது, அவர்கள் மிகவும் தவிர்க்க வேண்டும். 739 00:32:08,810 --> 00:32:12,670 ஆனால் GetInt கீழே மற்றும் GetInt வேலை எப்படி பார்க்க. 740 00:32:12,670 --> 00:32:13,890 எனவே இங்கே GetInt ஆகிறது. 741 00:32:13,890 --> 00:32:17,727 நீங்கள் எப்போதும் உண்மையில் அக்கறை இருந்தால் எப்படி எண்ணாக இங்கே, வேலை, அதன் ஆவணங்கள் ஆகும். 742 00:32:17,727 --> 00:32:19,560 மேலும் விஷயங்களை அது சொல்கிறது என்கிறார் 743 00:32:19,560 --> 00:32:21,340 மதிப்புகள் எல்லைகள் அதை திரும்ப முடியும் என்ன. 744 00:32:21,340 --> 00:32:24,400 இது அடிப்படையில் எதிர்மறை 2 பில்லியன் நேர்மறை 2 பில்லியன், கொடுக்க அல்லது எடுத்து. 745 00:32:24,400 --> 00:32:26,420 >> அது இந்த மாறிவிடும் நேரத்தில், நாம் நான் கூட 746 00:32:26,420 --> 00:32:28,570 நீங்கள் அதை சரிபார்க்க என்றும், ஏதாவது தவறு நடந்தால், 747 00:32:28,570 --> 00:32:30,680 அது அனைத்து என்று மாறிவிடும் இந்த நேரத்தில், GetInt உள்ளது 748 00:32:30,680 --> 00:32:33,600 ஒரு சிறப்பு திரும்பிய பூஜ்ய, சீரானதாக இல்லை 749 00:32:33,600 --> 00:32:36,760 மாறாக இது, INT_MAX ஒரு ப்ரோக்ராமர் மாநாட்டில். 750 00:32:36,760 --> 00:32:38,846 இது இங்கே பொருள் ஒரு சிறப்பு மதிப்பு உள்ளது. 751 00:32:38,846 --> 00:32:41,470 தான், இந்த சரிபார்க்க உறுதி வழக்கில் ஏதாவது தவறு நடந்தால். 752 00:32:41,470 --> 00:32:43,261 ஆனால் நாம் கவலை தேதி என்று, 753 00:32:43,261 --> 00:32:45,200 மீண்டும், இந்த, ஏனெனில் எளிமைப்படுத்த பொருள். 754 00:32:45,200 --> 00:32:46,950 >> ஆனால் எப்படி GetInt செயல்படுத்தப்பட்டது? 755 00:32:46,950 --> 00:32:48,450 சரி, ஒரு, இது வாதங்கள் இல்லை எடுக்கும். 756 00:32:48,450 --> 00:32:49,390 நாங்கள் அறிவோம். 757 00:32:49,390 --> 00:32:50,820 அது ஒரு முழு எண்ணாக கொடுக்கிறது. 758 00:32:50,820 --> 00:32:51,950 நாங்கள் அறிவோம். 759 00:32:51,950 --> 00:32:54,460 எனவே எப்படி அது தொப்பி கீழே வேலை? 760 00:32:54,460 --> 00:32:58,290 >> எனவே வெளிப்படையாக ஒரு முடிவிலா இருக்கிறது லூப், ஒரு குறைந்தது தோற்றம். 761 00:32:58,290 --> 00:33:00,290 நாம் GetString பயன்படுத்தி என்பதை கவனியுங்கள். 762 00:33:00,290 --> 00:33:04,000 அதனால் சுவாரஸ்யமான விஷயம். GetInt நம் சொந்த செயல்பாடு, GetString அழைப்பு விடுத்துள்ளது. 763 00:33:04,000 --> 00:33:05,645 இப்போது ஏன் இந்த வழக்கில் இருக்கும்? 764 00:33:05,645 --> 00:33:07,400 765 00:33:07,400 --> 00:33:09,842 நான் ஏன் தற்காப்பு இருப்பது இங்கே வரி 165 ல்? 766 00:33:09,842 --> 00:33:11,390 767 00:33:11,390 --> 00:33:15,639 என்ன வரி நடக்கலாம் 164, நான் தெளிவாக இருக்க வேண்டும்? 768 00:33:15,639 --> 00:33:16,930 அது முன் அதே பதில் தான். 769 00:33:16,930 --> 00:33:18,660 770 00:33:18,660 --> 00:33:20,089 நினைவகம் வெளியே இருக்கலாம். 771 00:33:20,089 --> 00:33:23,130 ஏதாவது, GetString தவறு நாம் கையாள முடியும் கிடைத்துவிட்டது. 772 00:33:23,130 --> 00:33:27,070 காரணம் நான் பூஜ்ய திரும்ப என்று, தொழில்நுட்ப, பூஜ்ய ஒரு சுட்டிக்காட்டி இருக்கிறது. 773 00:33:27,070 --> 00:33:29,120 GetInt ஒரு முழு எண்ணாக திரும்ப உள்ளது. 774 00:33:29,120 --> 00:33:31,060 எனவே நான் தன்னிச்சையாக விகிறேன் அடிப்படையில், முடிவு 775 00:33:31,060 --> 00:33:34,600 2 பில்லியன் என்று, போகிறது, கொடுக்க அல்லது எடுத்து ஒரு சிறப்பு மதிப்பு இருக்க வேண்டும் என்று நான் ஒருபோதும் முடியாது 776 00:33:34,600 --> 00:33:35,970 உண்மையில் பயனர் இருந்து கிடைக்கும். 777 00:33:35,970 --> 00:33:39,930 அதை நான் போகிறேன் ஒரு மதிப்பு இருக்கிறது ஒரு பிழை குறியீடு பிரதிநிதித்துவம் வீணடிக்க. 778 00:33:39,930 --> 00:33:41,540 >> எனவே இப்போது, விஷயங்களை ஒரு சிறிய கற்பனை செய்து. 779 00:33:41,540 --> 00:33:44,670 அது மிகவும் அதே செயல்பாடு இல்லை முன்பு, ஆனால் அது போலவே தான். 780 00:33:44,670 --> 00:33:50,120 அதனால் நான் வரி, இங்கே அறிவிக்க, கவனிக்க 172, ஒரு முழு எண்ணாக n மற்றும் ஒரு கரி கேட்ச் இரண்டு. 781 00:33:50,120 --> 00:33:53,600 பின்னர் நான், இந்த பங்கி வரி பயன்படுத்த அது மாறிவிடும் இது sscanf, 782 00:33:53,600 --> 00:33:55,990 விசைப்பலகை இருந்து ஒரு சரம் ஸ்கேன். 783 00:33:55,990 --> 00:33:59,226 இது ஏற்கனவே சரம் உள்ளது என்று ஏற்கனவே பயனர் தட்டச்சு. 784 00:33:59,226 --> 00:34:02,100 எனவே நான் ஏற்கனவே GetString, என நான் நினைவகம் ஒரு சரம் வேண்டும் என்பதாகும். 785 00:34:02,100 --> 00:34:05,020 sscanf நீங்கள் என்ன விட்டோம் ஆகிறது ஒரு பாகுபடுத்தி செயல்பாடு அழைப்பு. 786 00:34:05,020 --> 00:34:07,760 இது நான் சரம் தெரிகிறது பாத்திரம், பாத்திரம் தட்டச்சு 787 00:34:07,760 --> 00:34:09,250 மற்றும் பயனுள்ள ஏதாவது. 788 00:34:09,250 --> 00:34:10,969 என்று சரம் வரி சேமிக்கப்படுகிறது. 789 00:34:10,969 --> 00:34:13,560 நான் மட்டும் சென்று என்று சரி, ஓ, இங்கே என்று கூறி மீண்டும், 790 00:34:13,560 --> 00:34:15,143 நான் கள் இந்த நேரத்தில், ஆனால் வரி என்று. 791 00:34:15,143 --> 00:34:15,989 792 00:34:15,989 --> 00:34:18,080 >> இப்போது இந்த ஒரு சிறிய வித்தியாசம் உள்ளது. 793 00:34:18,080 --> 00:34:22,480 ஆனால் இந்த திறம்பட காரணங்களுக்காக, பொருள் நாங்கள் ஓரளவு, இன்று நம் கைகளை அசைப்பது வேண்டும் 794 00:34:22,480 --> 00:34:26,070 நாங்கள் சோதனை என்று பயனர் தட்டச்சு பார்க்க 795 00:34:26,070 --> 00:34:29,909 மற்றும் எண்ணாக ஒருவேளை மற்றொரு பாத்திரம். 796 00:34:29,909 --> 00:34:33,610 பயனர் ஒரு முழு எண்ணாக தட்டச்சு செய்தால், அது நான் இருக்கிறேன், ஏனெனில் நான், n இல் சேமித்து வைக்க 797 00:34:33,610 --> 00:34:36,739 முகவரி இந்த கடந்து, இன்று நாம் பார்த்த புதிய தந்திரம். 798 00:34:36,739 --> 00:34:41,570 பயனர் தட்டச்சு செய்தால் போன்ற 123x, அந்த x 799 00:34:41,570 --> 00:34:45,060 ஒரு முடிவுக்கு வரும் பாத்திரம் கேட்ச் கடிதம். 800 00:34:45,060 --> 00:34:48,739 >> இப்போது அது என்று sscanf மாறிவிடும் புத்திசாலித்தனமாக, சொல்ல வேண்டும், 801 00:34:48,739 --> 00:34:54,750 எத்தனை மாறிகள் sscanf நிரப்ப வெற்றிகரமாக முடிந்தது. 802 00:34:54,750 --> 00:34:58,770 இந்த தர்க்கம் மூலம், என்றால் செயல்பாடு நான், GetInt செயல்படுத்தி 803 00:34:58,770 --> 00:35:00,900 ஆனால் நான் சோதனை, திறன், பயனர் 804 00:35:00,900 --> 00:35:04,190 ஒரு முழு எண்ணாக தட்டச்சு செய்து வேறு ஏதாவது தொடர்ந்து, 805 00:35:04,190 --> 00:35:08,580 நான் என்ன sscanf தான் வேண்டும் திரும்ப மதிப்பு உண்மையிலேயே இருக்க வேண்டும்? 806 00:35:08,580 --> 00:35:10,950 நோக்கத்திற்காக பெற உள்ளது என்றால் பயனர் இருந்து ஒரு முழு எண்ணாக? 807 00:35:10,950 --> 00:35:13,980 808 00:35:13,980 --> 00:35:19,300 >> எனவே sscanf வருமானத்தை என்றால் 2, என்ன அர்த்தம்? 809 00:35:19,300 --> 00:35:21,660 பயனர் தட்டச்சு ஏதாவது போன்ற, அதாவது, 810 00:35:21,660 --> 00:35:24,770 வெறும் முட்டாள்தனம் இது 123x. 811 00:35:24,770 --> 00:35:27,490 அது, ஒரு பிழை நிலை, மற்றும் நான் என சோதிக்க வேண்டும். 812 00:35:27,490 --> 00:35:32,960 >> எனவே இந்த பயனர் வகைகள் என்றால், மூலம் இந்த தர்க்கம், திரும்ப, sscanf என்ன, 813 00:35:32,960 --> 00:35:33,740 நீங்கள் சொல்ல முடியும்? 814 00:35:33,740 --> 00:35:35,070 815 00:35:35,070 --> 00:35:39,130 அது ஏனெனில், 2 திரும்ப நடக்கிறது 123, இங்கே போக போகிறது 816 00:35:39,130 --> 00:35:41,580 மற்றும் x இங்கே முடிவடையும் போகிறது. 817 00:35:41,580 --> 00:35:43,970 ஆனால் நான் x பூர்த்தி செய்து கொள்ள விரும்பவில்லை. 818 00:35:43,970 --> 00:35:48,580 நான் மட்டும் வெற்றி sscanf வேண்டும் அதன் மாறிகள் முதல் நிரப்பும். 819 00:35:48,580 --> 00:35:52,490 எனவே அதனால் தான் நான் sscanf 1 திரும்பி. 820 00:35:52,490 --> 00:35:55,750 >> இந்த தலைக்கு மேல் ஒரு பிட் கணம், அந்த நன்றாக உள்ளது. 821 00:35:55,750 --> 00:36:00,030 என்றாலும் அந்த உணர்ந்து GetInt மற்றும் GetString மதிப்புகள் 822 00:36:00,030 --> 00:36:03,630 நாம் ஒரு கர்மம் செய்கிறீர்கள் என்று ஆகிறது இந்த போன்ற பிழை சோதனை நிறைய 823 00:36:03,630 --> 00:36:07,130 என்று, தேதி, நீங்கள் அழகாக மிகவும் முடியுமோ உங்கள் விசைப்பலகை உள்ள எதுவும் தட்டச்சு, 824 00:36:07,130 --> 00:36:08,490 அதை நாம் பிடிப்போம். 825 00:36:08,490 --> 00:36:10,592 நாம் நிச்சயமாக, ஊழியர்கள், இல்லை நிச்சயம் 826 00:36:10,592 --> 00:36:13,300 ஒரு பிழை ஆதாரமாக இருக்க உங்கள் திட்டம், நாம் பாதுகாப்பான ஏனெனில் 827 00:36:13,300 --> 00:36:16,270 முட்டாள் அனைத்து சோதனை ஒரு பயனர் செய்ய வேண்டும் என்று விஷயங்கள், 828 00:36:16,270 --> 00:36:18,900 , ஒரு சரம் தட்டச்சு போன்ற நீங்கள் உண்மையில் முழு எண்ணாக விரும்பினார். 829 00:36:18,900 --> 00:36:21,350 எனவே நாம் வருகிறேன் now-- க்கான இந்த திரும்பி long-- முன் 830 00:36:21,350 --> 00:36:23,710 ஆனால் இந்த நேரத்தில், GetString மற்றும் GetInt வேண்டும் 831 00:36:23,710 --> 00:36:29,950 இந்த பயன்படுத்தி பேட்டை அடியில் இருந்து நினைவக முகவரிகளை அடிப்படை யோசனை. 832 00:36:29,950 --> 00:36:32,580 >> எனவே இப்போது, ஒரு விஷயங்கள் செய்யலாம் பயனர் நட்பு இன்னும் கொஞ்சம். 833 00:36:32,580 --> 00:36:38,740 நீங்கள் Binky, கடந்த இருந்து, நினைவு இருக்கலாம் என நேர என் சுட்டி எனவே cooperate-- என்றால் 834 00:36:38,740 --> 00:36:42,560 நாம் இந்த குறியீடு, அதில் வெளிப்படையாக, மிகவும் முட்டாள்தனமானது. 835 00:36:42,560 --> 00:36:45,330 இந்த குறியீடு எதுவும் அடைகிறது பயனுள்ள, ஆனால் அதை உதாரணமாக இருந்தது 836 00:36:45,330 --> 00:36:48,330 என்று பேராசிரியர் Parlante பிரதிநிதித்துவம் பொருட்டு பயன்படுத்தப்படும் 837 00:36:48,330 --> 00:36:51,840 என்ன ஒரு நடக்கிறது நினைவகம் சம்பந்தப்பட்ட திட்டம். 838 00:36:51,840 --> 00:36:54,850 >> எனவே இந்த retell அனுமதிக்க கதை சூப்பர் சுருக்கமாக. 839 00:36:54,850 --> 00:36:58,720 இந்த முதல் இரண்டு வரிகளை ஆங்கிலம், நீங்கள் என்ன சொல்ல? 840 00:36:58,720 --> 00:37:01,230 841 00:37:01,230 --> 00:37:05,430 வெறும் நியாயமான மனித, ஆனால் சற்று தொழில்நுட்ப அடிப்படையில், ஒரு குத்துவதற்கு எடுத்து. 842 00:37:05,430 --> 00:37:06,346 பார்வையாளர்கள்: [செவிக்கு புலப்படாமல்]. 843 00:37:06,346 --> 00:37:07,705 844 00:37:07,705 --> 00:37:11,080 >> டேவிட் ஜே MALAN: சரி, நீங்கள் நிறுவுவதில் உங்கள் x மற்றும் y மாறிகளை முகவரிகள். 845 00:37:11,080 --> 00:37:15,520 இல்லை மிகவும், x மற்றும் y இல்லை, ஏனெனில் பாரம்பரிய உணர்வு மாறிகள். 846 00:37:15,520 --> 00:37:18,054 x மற்றும் y முகவரிகள் அல்லது முகவரி சேமிக்கும். 847 00:37:18,054 --> 00:37:19,220 எனவே இந்த முறை இன்னும் முயற்சி செய்வோம். 848 00:37:19,220 --> 00:37:21,010 ஒரு மோசமான தொடக்கத்தில், இருப்பினும். 849 00:37:21,010 --> 00:37:21,510 சரி? 850 00:37:21,510 --> 00:37:22,426 >> பார்வையாளர்கள்: [செவிக்கு புலப்படாமல்]. 851 00:37:22,426 --> 00:37:23,966 852 00:37:23,966 --> 00:37:24,840 டேவிட் ஜே MALAN: நல்ல. 853 00:37:24,840 --> 00:37:26,173 நான் ஒரு சிறிய தூய்மையான நினைக்கிறேன். 854 00:37:26,173 --> 00:37:28,630 இரண்டு சுட்டிகள், இரண்டு முழு அறிவித்தார். 855 00:37:28,630 --> 00:37:30,150 மற்றும் நாம் அவற்றை x மற்றும் y அழைப்பு. 856 00:37:30,150 --> 00:37:32,790 அல்லது நாம் இருந்தால் வரைய இந்த ஒரு படம், மீண்டும், 857 00:37:32,790 --> 00:37:36,410 மிகவும் எளிமையாக அனைத்து நினைவு நாம் அந்த முதல் வரி செய்கிறீர்கள் 858 00:37:36,410 --> 00:37:39,690 இந்த மாதிரி ஒரு பெட்டியில் வரைந்து, அது சில குப்பை மதிப்பு, 859 00:37:39,690 --> 00:37:41,920 பின்னர் அது அழைப்பு, மற்றும் இது போன்ற மற்றொரு பெட்டியில், 860 00:37:41,920 --> 00:37:43,880 சில குப்பை மதிப்பு அது, y அழைப்பு. 861 00:37:43,880 --> 00:37:45,810 நாம் இரண்டு அறிவித்தார் சுட்டிகள் இறுதியில் 862 00:37:45,810 --> 00:37:47,860 ஒரு முழு எண்ணாக முகவரி சேமிக்கும். 863 00:37:47,860 --> 00:37:49,170 அதனால் அனைத்து இருக்கிறது. 864 00:37:49,170 --> 00:37:53,290 >> Binky, இதை போது, களிமண் தான் இந்த போல. 865 00:37:53,290 --> 00:37:55,350 நிக் வெறும் வகையான அம்புகள் வரை மூடப்பட்டிருக்கும், 866 00:37:55,350 --> 00:37:57,590 என்றாலும் அவர்கள் எங்கேயும் சுட்டி குறிப்பாக, ஏனெனில் அவர்கள் தான் இருக்கிறார்கள் 867 00:37:57,590 --> 00:37:58,250 குப்பை மதிப்புகள். 868 00:37:58,250 --> 00:38:01,670 அவர்கள் வெளிப்படையாக துவக்கப்படும் எங்கும் குறிப்பாக. 869 00:38:01,670 --> 00:38:03,980 >> இப்போது அடுத்த வரியில் குறியீடு, திரும்ப, இந்த இருந்தது. 870 00:38:03,980 --> 00:38:07,510 நியாயமான பயனர் நட்பு எனவே ஆனால் சற்றே தொழில்நுட்ப ஆங்கிலம், 871 00:38:07,510 --> 00:38:09,790 குறியீடு செய்து இந்த வரி என்ன? 872 00:38:09,790 --> 00:38:10,391 சரி? 873 00:38:10,391 --> 00:38:11,333 >> பார்வையாளர்கள்: [செவிக்கு புலப்படாமல்]. 874 00:38:11,333 --> 00:38:12,746 875 00:38:12,746 --> 00:38:13,950 >> டேவிட் ஜே MALAN: பெர்பெக்ட். 876 00:38:13,950 --> 00:38:17,016 அது துண்டின் ஒதுக்கீடு ஒரு முழு எண்ணாக அளவு தான் என்று நினைவு. 877 00:38:17,016 --> 00:38:18,140 அந்த அரை பதில் தான். 878 00:38:18,140 --> 00:38:20,056 நீங்கள் சரியான பதில் வெளிப்பாடு பாதிக்கும். 879 00:38:20,056 --> 00:38:22,473 என்ன நடக்கிறது சம அடையாளம் இடது புறத்தில்? 880 00:38:22,473 --> 00:38:22,972 சரி? 881 00:38:22,972 --> 00:38:24,814 பார்வையாளர்கள்: ஒதுக்குகிறது அதை மாறி x எப்படி? 882 00:38:24,814 --> 00:38:27,690 >> டேவிட் ஜே MALAN: மேலும் ஒதுக்குகிறது அது மாறி, x. 883 00:38:27,690 --> 00:38:31,650 முறையை, வலது புறம் ஒதுக்கீடு எனவே போதுமான நினைவகம் ஒரு முழு எண்ணாக சேமிக்க. 884 00:38:31,650 --> 00:38:34,150 ஆனால் malloc குறிப்பாக முகவரி கொடுக்கிறது 885 00:38:34,150 --> 00:38:37,270 நீங்கள் தான் இது நினைவகம் என்று துண்டின், ஒரு வெறும் x சேமிக்கப்படும் முன்மொழியப்பட்டது. 886 00:38:37,270 --> 00:38:42,560 >> அதனால் என்ன நிக் Binky, கடந்த காலத்தில் ஆகிறது அவர் சுட்டிக்காட்டி வெளியே இழுத்து, களிமண், 887 00:38:42,560 --> 00:38:46,820 நினைவகம் ஒரு வெள்ளை துண்டின் இப்போது சுட்டிக்காட்ட என்று ஒரு முழு எண்ணாக அளவு சமமாக இருக்கும். 888 00:38:46,820 --> 00:38:49,360 உண்மையில், அந்த பொருள் நான்கு பைட்டுகள் பிரதிநிதித்துவம். 889 00:38:49,360 --> 00:38:55,310 >> குறியீடு இப்போது, அடுத்த வரி இதை, நட்சத்திர x 42 பெறுகிறது. 890 00:38:55,310 --> 00:38:58,530 எனவே 42 ம் நேர்மையானவன் வலது புறம், வாழ்க்கையின் அர்த்தம். 891 00:38:58,530 --> 00:39:00,500 இடது புறத்தில், நட்சத்திர x என்ன அர்த்தம்? 892 00:39:00,500 --> 00:39:01,600 893 00:39:01,600 --> 00:39:03,280 அது சரி தான் gone-- அதுவும் வேண்டும். 894 00:39:03,280 --> 00:39:04,220 சரி. 895 00:39:04,220 --> 00:39:06,875 >> பார்வையாளர்கள்: அடிப்படையில், [செவிக்கு புலப்படாமல்] செல்ல 896 00:39:06,875 --> 00:39:07,750 டேவிட் ஜே MALAN: நல்ல. 897 00:39:07,750 --> 00:39:08,760 பார்வையாளர்கள்: [செவிக்கு புலப்படாமல்]. 898 00:39:08,760 --> 00:39:09,760 டேவிட் ஜே MALAN: நிச்சயமாக. 899 00:39:09,760 --> 00:39:11,979 இடது புறத்தில் x சென்று பொருள். 900 00:39:11,979 --> 00:39:12,520 x முகவரி. 901 00:39:12,520 --> 00:39:15,520 இது 33 ஆக்ஸ்போர்டு தெரு, அல்லது Ox1 தான். 902 00:39:15,520 --> 00:39:18,690 மற்றும் நட்சத்திர x என்று சென்று பொருள் உரையாற்ற என்ன அங்கு வைத்து? 903 00:39:18,690 --> 00:39:19,520 42. 904 00:39:19,520 --> 00:39:21,290 >> எனவே உண்மையில், அந்த நிக் செய்தது சரியாக என்ன. 905 00:39:21,290 --> 00:39:23,740 அவர் மூலம் தொடங்கியது அடிப்படையில், மன 906 00:39:23,740 --> 00:39:26,270 ஒரு விரல் சுட்டி x, அம்பு பின்வரும் 907 00:39:26,270 --> 00:39:30,670 வலது கை வெள்ளை பெட்டியில் பக்க எண்ணிக்கை அங்கு 42 போடுவதை. 908 00:39:30,670 --> 00:39:34,120 ஆனால் பின்னர் விஷயங்களை கிடைத்தது கொஞ்சம் ஆபத்தானது, சரியான? 909 00:39:34,120 --> 00:39:35,860 Binky, அவரது தலையை இழக்க பற்றி. 910 00:39:35,860 --> 00:39:39,465 >> ஸ்டார் y என்ன அர்த்தம், 13, கெட்ட சமம்? 911 00:39:39,465 --> 00:39:43,620 எனவே நட்சத்திர y வழிமுறையாக y உள்ள முகவரிக்கு சென்று. 912 00:39:43,620 --> 00:39:45,630 ஆனால், y முகவரி என்ன? 913 00:39:45,630 --> 00:39:47,899 914 00:39:47,899 --> 00:39:49,440 சரி, அது குப்பை மதிப்பு, சரியா? 915 00:39:49,440 --> 00:39:50,800 நான் ஒரு கேள்விக்குறியை போன்ற வந்தார். 916 00:39:50,800 --> 00:39:54,850 நிக் ஒரு சுருண்டுள்ளது அம்பு போல் வந்தார். 917 00:39:54,850 --> 00:39:59,600 மற்றும் விரைவில் நீங்கள் முயற்சி அங்கு சென்று கூறி, நட்சத்திர y செய்ய, 918 00:39:59,600 --> 00:40:03,872 ஆனால் ஒரு நியாயமான இல்லை முகவரி, சில போலி இடம் தான், 919 00:40:03,872 --> 00:40:05,080 செயலிழக்க செய்ய திட்டம் நடக்கிறது. 920 00:40:05,080 --> 00:40:08,580 மற்றும் binky தலை போகிறது அது போல், இங்கே பறக்க. 921 00:40:08,580 --> 00:40:12,130 >> முடிவில், இந்த திட்டத்தை வெறும் பிளாட் அவுட் குறைபாடு இருந்தது. 922 00:40:12,130 --> 00:40:13,540 இது ஒரு தரமற்ற திட்டம் இருந்தது. 923 00:40:13,540 --> 00:40:14,760 அது சரி செய்ய தேவை. 924 00:40:14,760 --> 00:40:18,260 ஒரே வழி, உண்மையில், அதை சரி செய்ய இருக்கும், உதாரணமாக, இந்த வரி, 925 00:40:18,260 --> 00:40:21,010 நாம் கூட பெற முடியவில்லை, இது ஏனெனில், திட்டம் மிக விரைவில் முறிந்தது. 926 00:40:21,010 --> 00:40:26,170 ஆனால் நாம் இதை சரிசெய்ய வேண்டும் என்றால், என்ன விளைவு, y சமமாக x இல்லை செய்து என்ன? 927 00:40:26,170 --> 00:40:30,010 சரி, அது அடிப்படையில் உள்ள y புள்ளிகள் என்ன மதிப்பு x சுட்டி. 928 00:40:30,010 --> 00:40:32,430 >> நிக் கதை எனவே, அல்லது Binky, கதை, இரண்டு 929 00:40:32,430 --> 00:40:34,640 x மற்றும் y சுட்டி நினைவகம் வெள்ளை துண்டின் 930 00:40:34,640 --> 00:40:38,300 எனவே, இறுதியாக, நீங்கள் y மீண்டும் 13 சமம் ஸ்டார், 931 00:40:38,300 --> 00:40:43,080 நீங்கள் 13 போடுவதை முடிவடையும் அதற்கான இடம். 932 00:40:43,080 --> 00:40:47,640 எனவே இந்த வரிகளை அனைத்து செய்தபின் முறையான, இந்த ஒரு தவிர, 933 00:40:47,640 --> 00:40:51,730 உங்களுக்கு முன் நடந்தது போது உண்மையில், y சில மதிப்பு ஒதுக்கப்படும். 934 00:40:51,730 --> 00:40:54,290 >> இப்போது அதிர்ஷ்டவசமாக, நீங்கள் செய்ய அனைத்து வழியாக காரணம் இல்லை 935 00:40:54,290 --> 00:40:56,560 உங்கள் சொந்த பிரச்சினைகள் இந்த வகையான. 936 00:40:56,560 --> 00:40:59,310 என்னை போய் திறந்து விட இங்கே ஒரு முனை விண்டோவில் 937 00:40:59,310 --> 00:41:03,050 மற்றும் ஒரு கணம், திறந்து, ஒரு சூப்பர் குறுகிய திட்டம் என்று 938 00:41:03,050 --> 00:41:04,360 மேலும், அப்படி பிரயோஜனமும் இல்லை. 939 00:41:04,360 --> 00:41:05,152 அது அசிங்கமான தான். 940 00:41:05,152 --> 00:41:06,610 அது பயனுள்ளதாக எதையும் சாதிக்க முடியாது. 941 00:41:06,610 --> 00:41:10,180 ஆனால் அது பிரச்சினைகளை நிரூபிக்கிறது நினைவகம், எனவே பாருங்கள். 942 00:41:10,180 --> 00:41:11,830 >> முக்கிய, எளிய சூப்பர். 943 00:41:11,830 --> 00:41:14,830 இது வெளிப்படையாக ஒரு செயல்பாடு அழைப்பு, ஊ, பின்னர் 0 கொடுக்கிறது. 944 00:41:14,830 --> 00:41:16,310 அது குழப்பம் இந்த வகையான கடினம். 945 00:41:16,310 --> 00:41:18,540 எனவே முதன்மை இதுவரை, மிகவும் நல்லது. 946 00:41:18,540 --> 00:41:20,100 >> எனவே f சிக்கல் உள்ளது. 947 00:41:20,100 --> 00:41:22,120 மற்றும் மிகவும் போட வில்லை அதை பெயரிடும் ஒரு முயற்சி 948 00:41:22,120 --> 00:41:23,990 இங்கே, குறியீடு கவனம் வைக்க. 949 00:41:23,990 --> 00:41:25,740 எஃப் இரண்டு கோடுகள் உள்ளன. 950 00:41:25,740 --> 00:41:27,610 மற்றும் இப்போது என்ன நடக்கிறது என்று பார்ப்போம். 951 00:41:27,610 --> 00:41:29,840 எனவே ஒரு புறம் இங்கே என்னை செய்யலாம் 952 00:41:29,840 --> 00:41:32,680 முந்தைய இந்த சீரான ஒரு புறம் எடுத்துக்காட்டாக, 953 00:41:32,680 --> 00:41:35,830 இடது புறம் ஆகிறது ஆங்கிலத்தில், என்ன செய்கிறாய்? 954 00:41:35,830 --> 00:41:36,493 இது ஆகிறது 955 00:41:36,493 --> 00:41:37,701 பார்வையாளர்கள்: ஒரு சுட்டிக்காட்டி உருவாக்குகிறது. 956 00:41:37,701 --> 00:41:40,830 டேவிட் ஜே MALAN: ஒரு சுட்டிக்காட்டி உருவாக்குதல் ஒரு முழு எண்ணாக அழைப்பு அது x. 957 00:41:40,830 --> 00:41:43,789 எனவே அது அந்த பெட்டிகளை ஒரு உருவாக்குவதில் நான் தொடு திரையில் வரைந்து. 958 00:41:43,789 --> 00:41:45,913 இப்போது, வலது கையில் பக்க malloc,, நிச்சயமாக, 959 00:41:45,913 --> 00:41:47,420 நினைவகம் ஒரு துண்டின் ஒதுக்கீடு உள்ளது. 960 00:41:47,420 --> 00:41:49,989 மற்றும் தெளிவாக இருக்க வேண்டும், எப்படி எவ்வளவு நினைவகம் வெளிப்படையாக அது ஆகிறது 961 00:41:49,989 --> 00:41:52,030 ஒதுக்கீடு, நீங்கள் வெறும் வகையான இங்கே கணித செய்ய? 962 00:41:52,030 --> 00:41:53,200 963 00:41:53,200 --> 00:41:54,040 >> எனவே 40 பைட்டுகள் தான். 964 00:41:54,040 --> 00:41:57,400 எனக்கு தெரியும் என்று நான் ஒரு தெரிகிறேன் தான் எண்ணாக CS50 பயன்பாட்டிற்கான, குறைந்தது, 965 00:41:57,400 --> 00:41:58,060 நான்கு பைட்டுகள் ஆகும். 966 00:41:58,060 --> 00:41:59,610 எனவே 10 முறை 4 40 ஆகும். 967 00:41:59,610 --> 00:42:04,924 எனவே இந்த ஒரு x சேமித்து, முகவரி 40 ints முதல் வெளியே என்று 968 00:42:04,924 --> 00:42:07,340 மீண்டும் இடம் ஒதுக்கீடு செய்யப்பட்டுள்ளது, மீண்டும், மீண்டும், மீண்டும். 969 00:42:07,340 --> 00:42:08,470 >> அந்த malloc பற்றிய முக்கிய தான் என்ன. 970 00:42:08,470 --> 00:42:11,261 இது ஒரு சிறிய நினைவகம் எடுத்து இங்கே, இங்கே ஒரு சிறிய, ஒரு சிறிய இங்கே. 971 00:42:11,261 --> 00:42:14,220 இது, நீங்கள் நினைவகத்தை ஒரு துண்டின் கொடுக்கிறது contiguously, இயக்க இருந்து 972 00:42:14,220 --> 00:42:15,240 அமைப்பு. 973 00:42:15,240 --> 00:42:18,500 >> இப்போது இதை பற்றி என்ன, x அடைப்புக்குறி 10 0 சமம்? 974 00:42:18,500 --> 00:42:19,470 குறியீடு தன்னிச்சையான வரி. 975 00:42:19,470 --> 00:42:21,100 அது பயனுள்ளதாக எதையும் சாதிக்க முடியாது. 976 00:42:21,100 --> 00:42:26,128 ஆனால் அது சிறப்பாக உள்ளது, x அடைப்புக்குறி 10-- காரணம்? 977 00:42:26,128 --> 00:42:26,628 சரி? 978 00:42:26,628 --> 00:42:27,912 >> பார்வையாளர்கள்: [செவிக்கு புலப்படாமல்]? 979 00:42:27,912 --> 00:42:30,500 >> டேவிட் ஜே MALAN: x அடைப்புக்குறி 10 பூஜ்ய இருக்க வேண்டும். 980 00:42:30,500 --> 00:42:35,070 பூஜ்ய விவரம் மட்டும் நாடகம் வருகிறது சரங்களை, ஒரு சரம் இறுதியில். 981 00:42:35,070 --> 00:42:36,700 ஆனால் ஒரு நல்ல சிந்தனை. 982 00:42:36,700 --> 00:42:39,615 >> எவ்வளவு பெரிய கூட, இந்த வரிசை நான் 40 பைட்டுகள் ஒதுக்கீடு என்று? 983 00:42:39,615 --> 00:42:42,560 984 00:42:42,560 --> 00:42:43,690 அது சரி, ஒன்பது மூலம் 0? 985 00:42:43,690 --> 00:42:45,120 இது மொத்தம் 10 ints தான். 986 00:42:45,120 --> 00:42:48,790 40 பைட்டுகள், ஆனால் 10 ints, 0 வழியாக 0 சட்டிகளை. 987 00:42:48,790 --> 00:42:50,930 >> அதனால், x அடைப்புக்குறி 10 என்ன? 988 00:42:50,930 --> 00:42:53,090 அது உண்மையில் சில அறியப்படாத குப்பை மதிப்பு. 989 00:42:53,090 --> 00:42:54,780 அது எனக்கு சொந்தமானது இல்லை என்று நினைவு. 990 00:42:54,780 --> 00:42:59,650 நான் தொட்டு பைட் எண் 41, 42, 43, 44. 991 00:42:59,650 --> 00:43:01,420 நான் மிகவும் சற்று போகிறேன். 992 00:43:01,420 --> 00:43:04,490 >> உண்மையில், நான் இயக்க என்றால், இந்த திட்டம், அது நன்றாக செயலிழக்க செய்யலாம். 993 00:43:04,490 --> 00:43:05,790 ஆனால் சில நேரங்களில், நாம் அதிர்ஷ்டம் கிடைக்கும். 994 00:43:05,790 --> 00:43:07,706 அதனால் தான் நிரூபிக்க இதை வெளிப்படையாக, 995 00:43:07,706 --> 00:43:11,000 நீங்கள் முன் தெரியும் அதை இந்த இயக்க அனுமதிக்க. 996 00:43:11,000 --> 00:43:12,480 இது உண்மையில் செயலிழக்க. 997 00:43:12,480 --> 00:43:15,032 >> ஆனால் நான் இந்த, மாற்ற உதாரணமாக, 1000 போன்ற இருக்க வேண்டும் 998 00:43:15,032 --> 00:43:16,740 உண்மையில் இந்த செய்ய வேண்டுமென்றே, நாம் பார்ப்போம் 999 00:43:16,740 --> 00:43:18,710 நாம் பெற முடியும் என்றால், அது இந்த நேரத்தில் செயலிழக்க. 1000 00:43:18,710 --> 00:43:20,070 சரி, அதை செயலிழக்க இல்லை. 1001 00:43:20,070 --> 00:43:22,600 எப்படி 100,000 பற்றி? 1002 00:43:22,600 --> 00:43:25,000 அதை மறு நாம், இப்போது அது மீண்டும் இயக்கவும். 1003 00:43:25,000 --> 00:43:25,500 சரி. 1004 00:43:25,500 --> 00:43:25,960 பூ. 1005 00:43:25,960 --> 00:43:26,460 சரி. 1006 00:43:26,460 --> 00:43:29,090 எனவே வெளிப்படையாக, மீண்டும், இந்த நினைவகம் பிரிவுகளில், அதனால் பேச, 1007 00:43:29,090 --> 00:43:32,660 அதனால் நாம், நியாயமான பெரிய மீண்டும் மீண்டும் அதிர்ஷ்டம் கிடைக்கும். 1008 00:43:32,660 --> 00:43:36,510 ஆனால், இறுதியில், ஒரு முறை நீங்கள் மோசம் பெற உண்மையில், திரையில் இதுவரை வெளியே செல்ல 1009 00:43:36,510 --> 00:43:39,120 நீங்கள் உண்மையில் நினைவக தொட உண்மையில் நீங்கள் அல்ல. 1010 00:43:39,120 --> 00:43:40,870 >> ஆனால் வெளிப்படையாக, இந்த பிழைகள் வகையான போகிறோம் 1011 00:43:40,870 --> 00:43:43,020 கடினமாக இருக்க உங்கள் சொந்த கண்டுபிடிக்க. 1012 00:43:43,020 --> 00:43:47,880 ஆனால் அதிர்ஷ்டவசமாக, மென்பொருள், நாம் எங்களை இந்த செய்ய அனுமதிக்க வேண்டும் என்று கருவிகள். 1013 00:43:47,880 --> 00:43:50,140 எனவே, இந்த ஒருவேளை, ஒன்று அழுக்கான திட்டங்கள், 1014 00:43:50,140 --> 00:43:52,060 GDB வெளிப்பாட்டை விட அசிங்கமாக. 1015 00:43:52,060 --> 00:43:55,670 ஆனால் அது எப்போதும் ஒரு வரி அல்லது சூப்பர் பயனுள்ளதாக இருக்கும் என்று இரண்டு. 1016 00:43:55,670 --> 00:44:00,310 >> Valgrind உதவுகிறது என்று ஒரு திட்டம் உள்ளது நீங்கள் ஒரு திட்டத்தை debug, உள்ளபடியே, 1017 00:44:00,310 --> 00:44:03,500 ஆனால் நினைவக தொடர்பான கண்டுபிடிக்க பிரச்சினைகள், குறிப்பாக. 1018 00:44:03,500 --> 00:44:07,590 அது தானாக உங்கள் குறியீடு இயங்கும் நீங்கள் குறைந்தது இரண்டு விஷயங்களை பார்க்க. 1019 00:44:07,590 --> 00:44:10,680 ஒன்று, நீங்கள் ஏதாவது செய்ய தொடர்பு நினைவகம் போன்ற தற்செயலான 1020 00:44:10,680 --> 00:44:11,980 என்று நீங்கள் சேர்ந்தவை? 1021 00:44:11,980 --> 00:44:13,590 நீங்கள் அந்த வழக்குகள் கண்டறிய உதவும். 1022 00:44:13,590 --> 00:44:15,710 >> இரண்டு, அதை உதவி என்று ஏதாவது கண்டுபிடிக்க 1023 00:44:15,710 --> 00:44:19,270 நினைவு கசிவுகள், நாம் இது முற்றிலும் புறக்கணித்து, கபடமற்ற, 1024 00:44:19,270 --> 00:44:21,380 சில நேரம் மற்றும் ஆனந்தமாகவும். 1025 00:44:21,380 --> 00:44:23,140 ஆனால் அது அனைத்து மாறிவிடும் இந்த நேரத்தில், எப்போது 1026 00:44:23,140 --> 00:44:26,620 நீங்கள் GetString என்று அழைக்கப்படும் நமது திட்டங்கள் பல, 1027 00:44:26,620 --> 00:44:28,930 நீங்கள் இயக்க கேட்கிறாய் நினைவக அமைப்பு, 1028 00:44:28,930 --> 00:44:32,070 ஆனால் நீங்கள் எந்த கூறு எப்போதும் அதை கொடுத்து 1029 00:44:32,070 --> 00:44:36,169 மீண்டும், செய்து unalloc, அல்லது இலவச, இது என. 1030 00:44:36,169 --> 00:44:37,960 இல்லை, ஏனெனில் நாங்கள் தான் அவ்வாறு செய்ய கேட்டார். 1031 00:44:37,960 --> 00:44:41,250 >> ஆனால் இந்த நேரத்தில், திட்டங்கள் நீங்கள் சி எழுதி 1032 00:44:41,250 --> 00:44:43,800 நினைவக கசிவு, இயக்க கேட்டு 1033 00:44:43,800 --> 00:44:46,190 மேலும் அமைப்பு சரங்களை மற்றும் whatnot நினைவகம், 1034 00:44:46,190 --> 00:44:47,870 ஆனால் அது திரும்ப ஒப்படைத்தார். 1035 00:44:47,870 --> 00:44:50,080 இப்போது இந்த ஒரு பிட் உள்ளது ஒரு மிகையாக எளிமைப்படுத்தப்பட்ட, 1036 00:44:50,080 --> 00:44:53,550 ஆனால் நீங்கள் எப்போதாவது கிடைத்தால் உங்கள் மேக் இயக்க அல்லது சில நேரம், தொடக்க உங்கள் பிசி 1037 00:44:53,550 --> 00:44:55,790 திட்டங்கள் நிறைய, ஒருவேளை, திட்டங்கள் நிறைவு 1038 00:44:55,790 --> 00:44:57,795 மற்றும் கூட உங்கள் கணினி முறிந்தது, 1039 00:44:57,795 --> 00:45:01,690 அது, மிகவும் மெதுவாக போகிறது அது உண்மையில் போல் 1040 00:45:01,690 --> 00:45:04,290 நினைவு நிறைய பயன்படுத்தி அல்லது வளங்கள், கூட, 1041 00:45:04,290 --> 00:45:06,070 நீங்கள் இல்லை என்றால் கூட விசைப்பலகை தொடுதல், 1042 00:45:06,070 --> 00:45:10,430 என்று be-- ஆனால் always-- முடியவில்லை திட்டங்கள் நீங்கள் இயங்கும் என்று 1043 00:45:10,430 --> 00:45:11,920 தங்களை நினைவக கசிவை வேண்டும். 1044 00:45:11,920 --> 00:45:15,645 மற்றும் அவர்கள் மேலும் ஒரு OS கேட்டு வைக்க மேலும் நினைவகம், ஆனால் அதை பற்றி மறந்து, 1045 00:45:15,645 --> 00:45:18,470 உண்மையில், அதை பயன்படுத்தி ஆனால் எனவே விட்டு நினைவகம் எடுத்து 1046 00:45:18,470 --> 00:45:20,500 அதை விரும்பவில்லை என்று மற்ற திட்டங்கள் இருந்து. 1047 00:45:20,500 --> 00:45:23,940 எனவே ஒரு பொதுவான விளக்கம் தான். 1048 00:45:23,940 --> 00:45:25,940 இப்போது இங்கே எங்கே Valgrind தான் இருக்கிறது வெளியீடு முற்றிலும் ஆகிறது 1049 00:45:25,940 --> 00:45:29,290 அந்த குறைவாக கொடிய மற்றும் ஒரே வசதியாக. 1050 00:45:29,290 --> 00:45:32,690 ஆனால் சுவாரஸ்யமான பொருட்களை வலது வரை ஆகிறது. 1051 00:45:32,690 --> 00:45:37,060 அது எனக்கு ஒரு தவறான எழுதும் சொல்லி அளவு நான்கு, இந்த திட்டத்தில் நடக்கிறது 1052 00:45:37,060 --> 00:45:40,640 குறிப்பாக, memory.c வரிசையில் 21 இல். 1053 00:45:40,640 --> 00:45:45,450 >> நான் HM, அங்கு உண்மையில், வரி 21 சென்றால் அளவு நான்கு ஒரு தவறான எழுதும் உள்ளது. 1054 00:45:45,450 --> 00:45:46,250 ஏன் அளவு நான்கு? 1055 00:45:46,250 --> 00:45:49,500 சரி, இந்த எண்ணிக்கை மற்றும் அது எதையும் இருக்க முடியும் ஒரு முழு எண்ணாக இருக்கிறது. 1056 00:45:49,500 --> 00:45:50,450 எனவே அது நான்கு பைட்டுகள் தான். 1057 00:45:50,450 --> 00:45:52,550 எனவே நான் நான்கு பைட்டுகள் வைத்து அங்கு அவர்கள் சேர்ந்தவர்கள் இல்லை. 1058 00:45:52,550 --> 00:45:55,080 என்ன Valgrind தான் உண்மையில் என்னிடம் உள்ளது. 1059 00:45:55,080 --> 00:45:57,600 மேலும், இது சாப்பிடுவேன் நாம் பார்க்க வேண்டும் என, என்னை சொல்ல, 1060 00:45:57,600 --> 00:46:01,490 நீங்கள் இந்த ஒரு எதிர்கால pset உள்ள ரன் என்றால், மற்றும் நீங்கள் உண்மையிலேயே நினைவகம், கசிந்த போது 1061 00:46:01,490 --> 00:46:05,300 நான் அழைத்தேன், ஏனெனில் நான், இல்லை malloc, ஆனால் நான் உண்மையில் வேண்டும் 1062 00:46:05,300 --> 00:46:08,010 இலவச, இந்த வழக்கில், என்று, இது நாம் இறுதியில் பார்க்கலாம் 1063 00:46:08,010 --> 00:46:09,830 , malloc எதிரானது. 1064 00:46:09,830 --> 00:46:10,860 1065 00:46:10,860 --> 00:46:12,930 >> அதனால் இப்போது, நான், ஒரு இறுதி எடுத்துக்காட்டாக நினைக்கிறேன். 1066 00:46:12,930 --> 00:46:14,050 1067 00:46:14,050 --> 00:46:16,690 எனவே இந்த ஒரு சிறிய மேலும் விளங்காத, ஆனால் அது ஒருவேளை தான் 1068 00:46:16,690 --> 00:46:19,180 பெரிய காரணம் , நினைவக கவனமாக இருக்க 1069 00:46:19,180 --> 00:46:24,490 காரணம் பல திட்டங்கள் மற்றும் கூட இந்த நாள் / அல்லது இணைய சேவையகங்களில், 1070 00:46:24,490 --> 00:46:28,200 எங்காவது கெட்ட பசங்களா எடுத்து இணையத்தில் எப்படியோ யார் 1071 00:46:28,200 --> 00:46:33,390 உங்கள் சர்வர் போலி பொட்டலங்களை அனுப்பும் உங்கள் கணக்குகளை சமரசம் முயற்சி, 1072 00:46:33,390 --> 00:46:36,420 அல்லது உங்கள் தரவு எடுத்து, அல்லது பொதுவாக ஒரு கணினியில் எடுத்து. 1073 00:46:36,420 --> 00:46:38,910 இடையக வழிதல், என பெயர், வழிமுறையாக அறிவுறுத்துகிறது 1074 00:46:38,910 --> 00:46:40,740 ஒரு முழு எண்ணாக, ஆனால் ஒரு தடுப்பு நிரம்பி வழிகிறது. 1075 00:46:40,740 --> 00:46:43,490 மற்றும் ஒரு இடையக ஒரு கற்பனை வழி என்று அது நினைவகம் ஒரு கூட்டத்தை தான். 1076 00:46:43,490 --> 00:46:46,710 >> உண்மையில், நான் ஒரு சரம் என்று அதற்கு பதிலாக கள் தாங்கல், முன். 1077 00:46:46,710 --> 00:46:49,234 அது ஒரு தாங்கல் என்றால், ஏனெனில், YouTube உணர்வு போன்ற, 1078 00:46:49,234 --> 00:46:52,400 அல்லது நீங்கள் ஒரு வீடியோ பார்த்து வருகிறோம் எந்த நேரத்தில், சொல் தாங்கல் பார்த்திருக்கிறேன், 1079 00:46:52,400 --> 00:46:53,040 டாட், டாட் டாட். 1080 00:46:53,040 --> 00:46:54,240 இது நம்பமுடியாத எரிச்சலூட்டும் தான். 1081 00:46:54,240 --> 00:46:55,990 என்று தான் பொருள் உங்கள் வீடியோ பிளேயர் என்று 1082 00:46:55,990 --> 00:46:58,710 நிறைய பதிவிறக்க முயற்சி பைட்டுகள் பைட்டுகள், நிறைய 1083 00:46:58,710 --> 00:47:00,170 இணையத்தில் இருந்து ஒரு வீடியோ. 1084 00:47:00,170 --> 00:47:02,920 ஆனால் அது மெதுவாக தான், அது முயற்சி அவற்றை ஒரு கொத்து பதிவிறக்க 1085 00:47:02,920 --> 00:47:06,430 என்று ஒரு தாங்கல், ஒரு கொள்கலன் நிரப்ப நீங்கள் அதை பிறகு போதுமான பைட்டுகள் 1086 00:47:06,430 --> 00:47:09,174 நீங்கள் வீடியோ காட்ட தொடர்ந்து pausing இல்லாமல். 1087 00:47:09,174 --> 00:47:11,340 ஆனால் அதை உங்களால் மாறிவிடும் இந்த பெரிய ஒரு தாங்கல் வேண்டும். 1088 00:47:11,340 --> 00:47:15,710 ஆனால் இந்த அதிக தரவு வைக்க முயற்சி அது மிகவும் கெட்ட விஷயங்கள் நடக்க முடியும். 1089 00:47:15,710 --> 00:47:22,780 எனவே உதாரணமாக, பார்த்து விட்டு ஒரு உதாரணம் இந்த இறுதி டீஸர். 1090 00:47:22,780 --> 00:47:24,720 இது மற்றொரு திட்டம் என்று, முதல் பார்வையில், 1091 00:47:24,720 --> 00:47:26,540 பயனுள்ள சூப்பர் எதையும் செய்ய முடியாது. 1092 00:47:26,540 --> 00:47:29,590 இது ஒரு முக்கிய செயல்பாடு கிடைத்தது , f, அந்த செயல்பாடு அழைக்கிறது. 1093 00:47:29,590 --> 00:47:36,640 அந்த செயல்பாடு, ஊ, இங்கே, கொண்டிருக்கிறது ஒரு கரி வரிசை அளவு 12, கேட்ச் என்று. 1094 00:47:36,640 --> 00:47:39,340 பின்னர் அது இந்த பயன்படுத்தி புதிய செயல்பாடு strncpy என்று. 1095 00:47:39,340 --> 00:47:40,430 1096 00:47:40,430 --> 00:47:45,190 >> இது, இந்த எளிய, என்று மாறிவிடும் குறியீடு எளிய வரி, இரண்டு கோடுகள், 1097 00:47:45,190 --> 00:47:49,130 நாங்கள், என் முழு திட்டத்தை செய்து எனவே, என் முழு கணினி, 1098 00:47:49,130 --> 00:47:54,000 என் பயனர் கணக்கு, மற்றும் என் கடின யாருக்கும் திறன் பாதிக்கப்படும் ஓட்ட 1099 00:47:54,000 --> 00:47:58,170 யாருக்கு தெரியும் இயக்க போதுமானது ஒரு குறிப்பிட்ட கட்டளை வரி மூலம் இந்த திட்டம் 1100 00:47:58,170 --> 00:47:58,900 வாதம். 1101 00:47:58,900 --> 00:48:03,400 வேறுவிதமாக கூறினால், இந்த மோசமான பையன் தட்டச்சு argvargv [1] உள்ளே வைக்கிறது 1102 00:48:03,400 --> 00:48:08,750 விசைப்பலகை மிகவும் சிறப்பாக வடிவமைக்கப்பட்டு உள்ள சரம், ABC, 123, ஆனால் அடிப்படையில், 1103 00:48:08,750 --> 00:48:15,180 இயங்கக்கூடிய பிரதிநிதித்துவம் என்று பைனரி சின்னங்கள் குறியீடு, அவன் அல்லது அவள் எழுதியது என்று ஒரு திட்டம், 1104 00:48:15,180 --> 00:48:19,190 இது இந்த எளிய திட்டம், உடன் திட்டங்கள் ஆயிரக்கணக்கான பிரதிநிதி 1105 00:48:19,190 --> 00:48:23,610 என்று துணிந்து கூறு மொத்தத்தில், இதேபோல் பாதிக்கப்படும் அவர் இறுதியில் அனைத்து நீக்க முடியும் 1106 00:48:23,610 --> 00:48:26,680 என் நிலைவட்டில் கோப்புகளை, ஒரு பெற அவர் முடியுமோ அந்த வரியில் ஒளிரும் 1107 00:48:26,680 --> 00:48:30,170 தங்கள் சொந்த கட்டளைகளை தட்டச்சு, நானே அனைத்து கோப்புகளை மின்னஞ்சல். 1108 00:48:30,170 --> 00:48:34,660 நான் என்ன செய்ய முடியும் என்று எதையும் அவர் அல்லது அவள் இந்த குறியீடு செய்ய முடியும். 1109 00:48:34,660 --> 00:48:36,575 >> நாம் மிகவும் இன்னும் இந்த தீர்க்க முடியாது. 1110 00:48:36,575 --> 00:48:38,700 உண்மையில், இது நடக்கிறது ஒரு சிறிய படம் உள்ளடக்கியது 1111 00:48:38,700 --> 00:48:41,470 இந்த மாதிரி, நாம் விரைவில் வருவேன் அனைத்து நன்றாக புரிந்து கொள்ள. 1112 00:48:41,470 --> 00:48:44,480 ஆனால் இன்று, தான் முடிக்கிறேன் சற்று வட்டம், என்ன 1113 00:48:44,480 --> 00:48:48,360 புரிந்து க்ஸ்க்ச்து நகைச்சுவை, நாங்கள் அடுத்த முறை மீண்டும் வரை. 1114 00:48:48,360 --> 00:48:51,100 1115 00:48:51,100 --> 00:48:51,600 சரி. 1116 00:48:51,600 --> 00:48:53,446 புதன்கிழமை நீங்கள் பார்ப்போம். 1117 00:48:53,446 --> 00:48:54,754 >> [இசை] 1118 00:48:54,754 --> 00:48:57,790 >> காண்க: இப்போது, ஆழமான Daven ஃபர்ண்ஹாம் மூலம் எண்ணங்கள்,. 1119 00:48:57,790 --> 00:49:00,890 1120 00:49:00,890 --> 00:49:04,770 மெமரி ஒரு குவியல் குதித்து போல ஒரு ஞாயிறு பிற்பகல் தங்க இலைகள். 1121 00:49:04,770 --> 00:49:09,000 காற்று வீசுகிறது, பூவா தலையா உங்கள் ஓ hair--, நான் நாட்கள் when-- இழக்கிறேன் 1122 00:49:09,000 --> 00:49:11,100 1123 00:49:11,100 --> 00:49:12,650 >> [சிரிப்பு] 1124 00:49:12,650 --> 00:49:13,750