1 00:00:00,000 --> 00:00:02,860 [Powered by Google Translate] [வாரம் 5] 2 00:00:02,860 --> 00:00:04,860 [டேவிட் ஜே Malan - ஹார்வர்ட் பல்கலைக்கழகம்] 3 00:00:04,860 --> 00:00:07,260 [இந்த CS50 உள்ளது. - CS50.TV] 4 00:00:07,260 --> 00:00:09,740 >> இந்த CS50, வாரம் 5. 5 00:00:09,740 --> 00:00:12,900 இன்று இந்த வாரம், நாம் ஆய்வுத்துறை உலக சிறிது அறிமுகம் 6 00:00:12,900 --> 00:00:14,850 சிக்கல் சூழலில் 4 அமைக்கவும். 7 00:00:14,850 --> 00:00:18,480 இங்கே ஒரு சிறப்பு நிகழ்ச்சி பின்னர் அங்கு ஏனெனில் இன்று ஒரு சுருக்கமாக உரை இருக்கும். 8 00:00:18,480 --> 00:00:21,940 எனவே நாம் ஒரு கண்ணோட்டம் எடுத்து, மாணவர்கள் மற்றும் ஒரே பெற்றோர்கள் இன்று இரண்டு கிண்டலடிக்கிறேன் 9 00:00:21,940 --> 00:00:24,600 அடிவானத்தில் என்று விஷயங்கள் சில. 10 00:00:24,600 --> 00:00:29,050 >> அவர்கள் மத்தியில், திங்கள் வரை, நீங்கள் இன்னும் சில படித்தவர்களை வேண்டும். 11 00:00:29,050 --> 00:00:32,980 edX, ஹார்வர்ட் மற்றும் ஓபன்கோர்ஸ்வேர் மற்றும் எம்ஐடி புதிய ஆன்லைன் முயற்சி, 12 00:00:32,980 --> 00:00:36,730 திங்கள் வந்து அதாவது இது திங்கள் அன்று ஹார்வார்டு வளாகத்தில் வெளியீடு 13 00:00:36,730 --> 00:00:40,930 நீங்கள், கடந்த எண்ணிக்கை வரை, 86,000 கூடுதல் படித்தவர்களை வேண்டும் 14 00:00:40,930 --> 00:00:43,680 CS50 இன் விரிவுரைகள் மற்றும் பிரிவுகள் மூலம் யார் சேர்த்து தொடர்ந்து 15 00:00:43,680 --> 00:00:45,890 மற்றும் மேலோட்டப்பார்வைகள் மற்றும் சிக்கல் செட். 16 00:00:45,890 --> 00:00:51,870 இந்த ஒரு பகுதியாக, நீங்கள் CS50 இப்போது CS50x தொடக்க வர்க்கத்தின் உறுப்பினர்கள் மாறும். 17 00:00:51,870 --> 00:00:56,150 இந்த பகுதி இப்போது, அதே சில upsides இருக்கும் என்று. 18 00:00:56,150 --> 00:01:00,620 மாணவர்கள் பெரும் எண்ணிக்கையிலான, இந்த தயாராக, 19 00:01:00,620 --> 00:01:03,820 என்ன அது போதுமானதாக என்று நாம் 108 டிஎஃப்எஸ் மற்றும் CAS உள்ளது கூட, 20 00:01:03,820 --> 00:01:07,560 நாம் மாணவர்கள் 80,000 ஹிட் முறை இது மிக சிறந்த மாணவர் ஆசிரியர் விகிதம் இல்லை. 21 00:01:07,560 --> 00:01:09,830 நாம், கைமுறையாக அமைத்து பல சிக்கல் தரப்படுத்தி வேண்டும் போவதில்லை 22 00:01:09,830 --> 00:01:13,050 அதனால் பிரச்சனை தொகுப்பில் இந்த வாரம் அறிமுகப்படுத்தியது, CS50 சோதனை இருக்கும் 23 00:01:13,050 --> 00:01:15,410 பயன்பாட்டிற்கான ஒரு கட்டளை வரி பயன்பாட்டு இருக்கும் இது 24 00:01:15,410 --> 00:01:17,880 இந்த வார பின்னர் அதை புதுப்பிக்க ஒரு முறை கிடைக்கும் என்று. 25 00:01:17,880 --> 00:01:21,030 நீங்கள், உங்கள் சொந்த pset ஒரு கட்டளை, check50, இயக்க முடியும் 26 00:01:21,030 --> 00:01:24,770 உங்கள் திட்டம் சரியான அல்லது தவறானது என உடனடி கருத்து கிடைக்கும் 27 00:01:24,770 --> 00:01:27,980 நாம் வழங்கப்படும் என்று பல்வேறு வடிவமைப்பு குறிப்புகளில் படி. 28 00:01:27,980 --> 00:01:30,310 பிரச்சனை தொகுப்பு குறிப்பீட்டில் என்று மேலும். 29 00:01:30,310 --> 00:01:34,220 CS50x வகுப்பு தோழர்கள் அத்துடன் இந்த பயன்படுத்தி. 30 00:01:34,220 --> 00:01:36,170 >> பிரச்சனை அமை 4, அனைத்து ஆய்வுத்துறை பற்றி 31 00:01:36,170 --> 00:01:38,630 இந்த pset உண்மையில் சில நிஜ வாழ்க்கை பொருள் அழகூட்டும் 32 00:01:38,630 --> 00:01:41,210 அதனால் நான் பட்டதாரி பள்ளியில் இருந்த போது நான் ஒரு நேரத்தில் interned 33 00:01:41,210 --> 00:01:45,270 மிடில்செக்ஸ் கவுண்டி தான் மாவட்ட வழக்கறிஞர் அலுவலகம் தடயவியல் வேலை செய்து கொண்டு 34 00:01:45,270 --> 00:01:47,660 அவர்கள் முன்னணி தடயவியல் புலன்விசாரணை மூலம். 35 00:01:47,660 --> 00:01:50,280 நான் ஒரு சில வாரங்கள் கடந்த குறிப்பிட்டுள்ளார் நினைப்பது என்ன இந்த, தொகை 36 00:01:50,280 --> 00:01:52,720 மாஸ் மாநிலம் பொலிஸ் அல்லது மற்றவர்கள், வந்து 37 00:01:52,720 --> 00:01:56,150 அவர்கள், ஹார்டு டிரைவ்கள் மற்றும் சிடிக்கள் மற்றும் நெகிழ் வட்டுகள் போன்ற போன்ற விஷயங்களை விட்டுவிடுவாரா என்று 38 00:01:56,150 --> 00:01:58,770 பின்னர் ஆய்வுத்துறை அலுவலக இலக்கு அறிந்துகொள்ள வேண்டும் 39 00:01:58,770 --> 00:02:01,470 அங்கு அல்லது சில வகையான ஆதாரங்கள் இல்லை என்று. 40 00:02:01,470 --> 00:02:04,730 இந்த சிறப்பு விசாரணைகள் அலகு இருந்தது, அது வெள்ளை காலர் குற்றமாகும். 41 00:02:04,730 --> 00:02:10,949 இது குற்றங்கள் மிகவும் சிக்கலான வகை, டிஜிட்டல் மீடியா சில வகையான சம்பந்தப்பட்ட எதுவும் இல்லை. 42 00:02:10,949 --> 00:02:16,450 பல மக்கள் என்று ஒரு மின்னஞ்சல் எழுத வேண்டும் என்று, "நான் அதை செய்தேன்." என்று திருப்பி 43 00:02:16,450 --> 00:02:20,490 அதனால் அடிக்கடி, இந்த தடயவியல் தேடல்கள், அனைத்து அந்த பழம் திரும்பக்கூட இல்லை 44 00:02:20,490 --> 00:02:22,820 ஆனால் சில நேரங்களில் இது போன்ற மின்னஞ்சல்களை எழுத வேண்டும். 45 00:02:22,820 --> 00:02:25,240 அதனால் சில நேரங்களில், முயற்சிகள் பரிசாக வழங்கப்பட்டது. 46 00:02:25,240 --> 00:02:31,210 >> ஆனால் இந்த தடயவியல் pset நாம் pset4 உள்ள கிராபிக்ஸ் ஒரு பிட் அறிமுகம் முடியும் வரை வாழ. 47 00:02:31,210 --> 00:02:35,410 ஒருவேளை நீங்கள் வழங்கும் இந்த பொருட்களை எடுத்து - JPEG படங்கள், GIF களை, போன்ற - இந்த நாட்கள். 48 00:02:35,410 --> 00:02:38,320 ஆனால் நீங்கள் உண்மையில் அதை பற்றி நினைத்தால், ஒரு படம், மிக ராப் முகம் போல், 49 00:02:38,320 --> 00:02:41,270 புள்ளிகள் அல்லது பிக்சல்கள் தொடர்ச்சியாக மாதிரியாக. 50 00:02:41,270 --> 00:02:43,380 ராப் முகத்தை வழக்கில், நிறங்களை அனைத்து வகையான, அங்கு 51 00:02:43,380 --> 00:02:46,760 நாம், இல்லையெனில் பிக்சல்கள் என்று அழைக்கப்படும் தனிநபர் புள்ளிகள், பார்க்க தொடங்கியது 52 00:02:46,760 --> 00:02:48,610 ஒருமுறை நாங்கள் உள்ளே பெரிதாக்க தொடங்கியது 53 00:02:48,610 --> 00:02:54,660 ஆனால் நாம் உலக சிறிது எளிமைப்படுத்த மற்றும் இந்த இங்கே கருப்பு மற்றும் வெள்ளை ராப் என்று சொன்னால், 54 00:02:54,660 --> 00:02:57,490 கருப்பு மற்றும் வெள்ளை பிரதிநிதித்துவம், நாம் தான் பைனரி பயன்படுத்தலாம். 55 00:02:57,490 --> 00:03:01,660 நாம் பைனரி பயன்படுத்த போகிறீர்கள் என்றால், 1 அல்லது 0, நாம் இந்த அதே படத்தை வெளிப்படுத்த முடியும் 56 00:03:01,660 --> 00:03:06,140 பிட்கள் இந்த வடிவத்துடன் ராப் சிரித்த முகம். 57 00:03:06,140 --> 00:03:12,100 11000011 வெள்ளை, வெள்ளை, கருப்பு, கருப்பு, கருப்பு, கருப்பு, வெள்ளை, வெள்ளை பிரதிபலிக்கிறது. 58 00:03:12,100 --> 00:03:16,150 அதனால் இது, வண்ணமயமான புகைப்படங்கள் பற்றி தொடங்க பிறகு ஒரு பெரும் பாய்ச்சல் அல்ல 59 00:03:16,150 --> 00:03:18,600 நீங்கள் பேஸ்புக் பார்க்க அல்லது ஒரு டிஜிட்டல் கேமரா மூலம் எடுத்து என்று விஷயங்கள். 60 00:03:18,600 --> 00:03:21,410 ஆனால் நிச்சயமாக இது நிறங்கள் வரும்போது, நீங்கள் அதிகமான பிட்கள் வேண்டும். 61 00:03:21,410 --> 00:03:25,690 மற்றும் புகைப்படங்கள் உலகில் மிகவும் பொதுவான, இல்லை 1 பிட் வண்ணம் பயன்படுத்த வேண்டும் 62 00:03:25,690 --> 00:03:29,560 இந்த கருத்து, ஆனால் 24 பிட் வண்ணம், நீங்கள் உண்மையில் மில்லியன் கணக்கிலான நிறங்களை இங்கு. போன்ற 63 00:03:29,560 --> 00:03:32,250 நாம் ராப் கண் மீது காண்பிக்க போது வழக்கில் என, 64 00:03:32,250 --> 00:03:36,370 என்று பல்வேறு வண்ணமயமான சாத்தியக்கூறுகள் மில்லியன் எந்த எண் இருந்தது. 65 00:03:36,370 --> 00:03:39,040 எனவே, பிரச்சினை அமை 4 அதேபோல ஒத்திகையும் இந்த அறிமுகம் 66 00:03:39,040 --> 00:03:43,370 ஏனெனில் இங்கு வெள்ளிக்கிழமை விரிவுரை வழக்கமான 2:30 பதிலாக 3:30 இன்று இருக்கும் இது. 67 00:03:43,370 --> 00:03:46,620 ஆனால் வீடியோ வழக்கமான நாளை ஆன்லைனில் இருக்கும். 68 00:03:46,620 --> 00:03:48,820 >> நாங்கள் மற்றொரு கோப்பு வடிவம் உன்னை அறிமுகப்படுத்துகிறேன். 69 00:03:48,820 --> 00:03:51,270 இந்த வேண்டுமென்றே, முதலில் மிரட்டுதல் பார்க்க பொருள் 70 00:03:51,270 --> 00:03:55,670 ஆனால் இந்த ஒரு சி struct இன்னும் சில ஆவணங்கள் ஆகும். 71 00:03:55,670 --> 00:03:58,940 இது மைக்ரோசாப்ட் ஆண்டுகளுக்கு முன்பு இந்த வடிவம் பிரபலமடைய உதவியது என்று மாறும் 72 00:03:58,940 --> 00:04:05,150 பிட்மேப் கோப்பு வடிவம், BMP, இந்த ஒரு சூப்பர் எளிய, வண்ணமயமான வரைகலை கோப்பு வடிவம் என்று அழைக்கப்படுகிறது 73 00:04:05,150 --> 00:04:10,150 அந்த டெஸ்க்டாப்புகளில் சுவர்த்தாளுக்கு சில நேரங்களில் இன்னும் சிறிது நேரத்தில் பயன்படுத்தப்படும் மற்றும். 74 00:04:10,150 --> 00:04:14,760 நீங்கள் Windows XP மற்றும் ரோலிங் மலைகள் மற்றும் நீல வானத்தில் திரும்ப நினைத்தால், 75 00:04:14,760 --> 00:04:17,170 என்று பொதுவாக ஒரு bmp அல்லது பிட்மேப் படம் இருந்தது. 76 00:04:17,170 --> 00:04:19,959 அவர்கள் சற்று சிக்கலான ஏனெனில் பிட்டுப்படங்கள் நமக்கு வேடிக்கையாக இருக்கிறது. 77 00:04:19,959 --> 00:04:22,610 அது மிகவும் 0 க்கள் மற்றும் 1 வி இந்த கட்டம் போன்று எளிதானது தான். 78 00:04:22,610 --> 00:04:27,510 அதற்கு பதிலாக, நீங்கள் ஒரு கோப்பு தொடக்கத்தில் ஒரு தலைப்பு போன்ற விஷயங்கள் வேண்டும். 79 00:04:27,510 --> 00:04:31,990 எனவே உள்ளே ஒரு. Bmp கோப்பு மற்ற வார்த்தைகள், உள்ள 0 க்கள் மற்றும் 1 வி ஒரு மொத்தமாக, இது 80 00:04:31,990 --> 00:04:34,910 ஆனால் அங்கு சில கூடுதல் 0 க்கள் மற்றும் 1 வி உள்ளது. 81 00:04:34,910 --> 00:04:38,220 அது ஆண்டுகளுக்கு வழங்கப்படும் என்ன நாம் அநேகமாக எடுத்திருப்பார் என்று மாறும் - 82 00:04:38,220 --> 00:04:45,170 . doc அல்லது. xls அல்லது. mp3, போன்ற கோப்பு வடிவங்கள். mp4, அதை கோப்பு வடிவங்கள் 83 00:04:45,170 --> 00:04:48,480 நீங்கள் அறிந்த என்பதை - என்ன அது கூட, ஒரு கோப்பு வடிவம் என்று அர்த்தம் 84 00:04:48,480 --> 00:04:52,480 நாள் முடிவில் இந்த கோப்புகள் அனைத்தையும் நாம் வெறும் 0 க்கள் மற்றும் 1 வி வேண்டும் பயன்படுத்த காரணம். 85 00:04:52,480 --> 00:04:56,810 ஒருவேளை அந்த 0 க்கள் மற்றும் 1 வி ஆஸ்கி மூலம் ஏபிசி அல்லது போல, பிரதிநிதித்துவம் 86 00:04:56,810 --> 00:04:58,820 ஆனால் நாள் முடிவில், அது இன்னும் சற்று 0 க்கள் மற்றும் 1 வி தான். 87 00:04:58,820 --> 00:05:02,100 எனவே மனிதர்கள் எப்போதாவது ஒரு புதிய கோப்பு வடிவமைப்பை கண்டுபிடித்தல் முடிவு 88 00:05:02,100 --> 00:05:06,420 அவர்கள் பிட்கள் முறைகள் உண்மையில் என்ன என்ன தரப்படுத்த வேண்டும். 89 00:05:06,420 --> 00:05:09,220 இங்கு இந்த வழக்கில், எல்லோரும் பிட்மேப் கோப்பு வடிவம் வடிவமைக்கப்பட்டுள்ளது யார் 90 00:05:09,220 --> 00:05:15,620 ஒரு பிட்மேப் கோப்பு முதல் பைட் நேரத்தில், அங்கு ஆஃப்செட் 0 குறிக்கப்படும் என்று, 91 00:05:15,620 --> 00:05:18,940 சில மிகுந்த அளவில் மாறுபாடாக என்ற மாறி என்று bfType, இருக்க போகிறது 92 00:05:18,940 --> 00:05:23,080 வெறும் படங்கள் கோப்பு வகை உள்ளது, இது என்ன பிட்மேப் கோப்பு வகை இது. 93 00:05:23,080 --> 00:05:27,700 நீங்கள் 2 ஈடு என்று இரண்டாவது வரிசையில், பைட் எண் 2, ஒருவேளை தெரிகிறது 94 00:05:27,700 --> 00:05:33,740 என்ன பிரதிபலிக்கிறது என்று 0s மற்றும் 1 வி ஒரு முறை உள்ளது? ஏதாவது அளவு. 95 00:05:33,740 --> 00:05:35,310 அது அங்கு இருந்து செல்லும். 96 00:05:35,310 --> 00:05:37,410 அதனால் பிரச்சனை அமை 4 இல், இந்த விஷயங்கள் சில வழியாக நடந்து. 97 00:05:37,410 --> 00:05:39,520 நாம் அவர்களை பற்றி caring முடிந்துவிடாது. 98 00:05:39,520 --> 00:05:47,510 ஆனால் அது பைட் 54 சுற்றி சுவாரசியமான பெற தொடங்கும் அறிவிப்பு: rgbtBlue, பச்சை, மற்றும் Red. 99 00:05:47,510 --> 00:05:52,110 நீங்கள் இதுவரை கேட்டிருக்கிறேன் என்றால் சுருக்க RGB - சிவப்பு, பச்சை, நீலம் - இந்த என்று ஒரு குறிப்பு உள்ளது 100 00:05:52,110 --> 00:05:54,610 அதை திருப்பி ஏனெனில் நீங்கள் வானவில் அனைத்து வண்ணங்கள் சித்தரிக்க முடியும் 101 00:05:54,610 --> 00:05:58,180 சிவப்பு மற்றும் நீல மற்றும் பச்சை சில சேர்க்கை. 102 00:05:58,180 --> 00:06:03,320 மற்றும் உண்மையில், அறையில் பெற்றோர்கள் முந்தைய ப்ரொஜக்டர் சில நினைவுகூர வேண்டும். 103 00:06:03,320 --> 00:06:05,890 இந்த நாட்களில், நீங்கள் மட்டும், ஒரு பிரகாசமான ஒளி ஒரு லென்ஸ் வெளியே வந்து பார்க்க 104 00:06:05,890 --> 00:06:09,800 ஆனால் மீண்டும் நாளில் நீ, சிவப்பு லென்ஸ், நீல லென்ஸ், மற்றும் பச்சை லென்ஸ் இருந்தது 105 00:06:09,800 --> 00:06:13,380 அவர்கள் ஒன்றாக இணைந்து ஒரு திரை இலக்காக மற்றும் ஒரு வண்ணமயமான படம் உருவாகிறது. 106 00:06:13,380 --> 00:06:16,270 மேலும் அடிக்கடி, நடுத்தர பள்ளிகள் மற்றும் உயர்நிலை பள்ளிகள் அந்த லென்ஸ்கள் வேண்டும் 107 00:06:16,270 --> 00:06:19,720 எப்போதும் மிகவும் சற்று சாய்ந்து, அதனால் நீங்கள் இரட்டை அல்லது மூன்று படங்களை பார்த்து வகையான இருந்தன. 108 00:06:19,720 --> 00:06:24,100 ஆனால் அந்த யோசனை. நீங்கள் ஒரு படத்தை ஓவியம் சிவப்பு மற்றும் பச்சை மற்றும் நீல ஒளி இருந்தது. 109 00:06:24,100 --> 00:06:26,590 மற்றும் அதே கொள்கை கணினிகளில் பயன்படுத்தப்படுகிறது. 110 00:06:26,590 --> 00:06:30,230 >> அதனால் பிரச்சனை உங்களுக்கு பிறகு சவால்களை மத்தியில் அமை 4 ஒரு சில விஷயங்கள் இருக்க போகிறோம். 111 00:06:30,230 --> 00:06:34,800 ஒரு உண்மையில் ஒரு படஅளவை ஆகும், 0 க்கள் மற்றும் 1 வி ஒரு வடிவத்தை எடுத்து, 112 00:06:34,800 --> 00:06:40,200 , 0 க்கள் மற்றும் 1 வி பல துண்டுகளாக்கி ஒரு அமைப்பு என்ன இந்த பிரதிநிதித்துவப்படுத்தும் கண்டுபிடித்தார்கள் 113 00:06:40,200 --> 00:06:43,630 சிவப்பு, நீலம், பச்சை - பின்னர் பிக்சல்கள் பெருக்கும் என்பதை கண்டுபிடித்தார்கள் - 114 00:06:43,630 --> 00:06:46,660 உள்ளே அந்த படத்தை ஆரம்பத்தில் இந்த மாதிரி போது, 115 00:06:46,660 --> 00:06:49,210 அது பின்னர் பதிலாக இந்த மாதிரி இருக்கும். 116 00:06:49,210 --> 00:06:53,640 மற்ற சவால்களை மத்தியில் கூட நீங்கள் ஒரு தடயவியல் படத்தை கொடுத்தது என்று நான் போகிறது 117 00:06:53,640 --> 00:06:56,030 ஒரு டிஜிட்டல் கேமரா ஒரு உண்மையான கோப்பு. 118 00:06:56,030 --> 00:06:58,960 அந்த கேமரா, ஒரு காலத்தில், புகைப்படங்கள் ஒரு மொத்தமாக இருந்தது. 119 00:06:58,960 --> 00:07:03,760 பிரச்சினை நாம் தற்செயலாக அழிக்க அல்லது படத்தை எப்படியாவது சிதைந்த இருந்தது. 120 00:07:03,760 --> 00:07:05,750 கெட்ட டிஜிட்டல் கேமராக்கள் நடக்க. 121 00:07:05,750 --> 00:07:09,150 எனவே நாம் உடனடியாக, அந்த அட்டை 0 க்கள் மற்றும் 1 வி ஆஃப் அனைத்து நகல் 122 00:07:09,150 --> 00:07:13,610 4 அமைக்கவும் ஒரு பெரிய கோப்பு அவர்களை காப்பாற்றினார், மற்றும் நாம் பிரச்சினைகளை நீங்கள் அவற்றை கொடுப்பாய் 123 00:07:13,610 --> 00:07:19,320 நீங்கள் வெறுமனே, அந்த JPEG படங்கள் அனைத்தையும் மீட்க எந்த சி ஒரு நிரலை எழுத முடியும். 124 00:07:19,320 --> 00:07:23,330 அதை அவர்கள் ஒரு சிக்கலான கோப்பு வடிவம் ஓரளவு தான் என்றாலும், அந்த JPEG படங்கள் அவுட் சுழல்கிறது - 125 00:07:23,330 --> 00:07:26,360 அவர்கள் மிகவும் சிக்கலான இங்கே இந்த சிரித்த முகத்தை விட நீ - 126 00:07:26,360 --> 00:07:31,160 ஒவ்வொரு JPEG 0 க்கள் மற்றும் 1 வி அதே முறைகள் தொடங்குகிறது என்று கூறினார். 127 00:07:31,160 --> 00:07:35,630 எனவே பயன்படுத்தி, இறுதியில், லூப் அல்லது இதே போன்ற ஒரு நிலையில் சுழற்சி அல்லது, 128 00:07:35,630 --> 00:07:38,880 நீங்கள், இந்த தடயவியல் படத்தை அனைத்து 0 க்கள் மற்றும் 1 வி மீது மீண்டும் கூறு முடியாது 129 00:07:38,880 --> 00:07:43,150 நீங்கள் பிரச்சனை தொகுப்பு குறிப்பீட்டிலுள்ள என்று சிறப்பு முறை பார்க்க ஒவ்வொரு முறையும், 130 00:07:43,150 --> 00:07:47,880 நீங்கள், மிக அதிக நிகழ்தகவு, ஒரு JPEG தொடக்கத்தில் இங்கு தொடரலாம். 131 00:07:47,880 --> 00:07:51,230 மற்றும் விரைவில் நீங்கள் அதே பாணி பைட்டுகள் சில பல கண்டு 132 00:07:51,230 --> 00:07:55,430 அல்லது கிலோபைட்டுகளை அல்லது மெகாபைட் பின்னர், நீங்கள் இங்கே நினைத்து கொள்ளலாம், இரண்டாவது JPEG உள்ளது 133 00:07:55,430 --> 00:07:57,380 படத்தை நான் முதல் ஒரு பின்னர் நடந்தது. 134 00:07:57,380 --> 00:08:01,370 எனக்கு அந்த முதல் கோப்பு படித்து விட்டுவிடுவோம், இந்த புதிய எழுத தொடங்கினார் 135 00:08:01,370 --> 00:08:06,310 மற்றும் pset4 உங்கள் நிரல் வெளியீடு பல 50 JPEG படங்கள் போகிறது. 136 00:08:06,310 --> 00:08:09,270 இது 50 JPEG படங்கள் இல்லை என்றால், நீங்கள் ஒரு வட்டத்திற்கு ஒரு பிட் உள்ளது. 137 00:08:09,270 --> 00:08:12,490 நீங்கள் JPEG படங்கள் எண்ணற்ற இருந்தால், நீங்கள் ஒரு முடிவிலா சுழற்சியில் உள்ளது. 138 00:08:12,490 --> 00:08:14,910 எனவே அதுவும் மிகவும் பொதுவான வழக்கு இருக்கும். 139 00:08:14,910 --> 00:08:16,600 அதனால் அடிவானத்தில் தான் என்ன. 140 00:08:16,600 --> 00:08:21,310 >> எங்களுக்கு பின்னால் 0 க்விஸ், சந்தோஷமாக இரு யார் எல்லோரும் தவிர்க்க உள்ளன என்று என் மின்னஞ்சல் ரூ உணர 141 00:08:21,310 --> 00:08:23,640 நடுநிலை, மற்றும் வினாடி வினா சுற்றி வருத்தம் 0 நேரம் வகையான. 142 00:08:23,640 --> 00:08:26,800 தலைமை TF Zamyla, உங்கள் சொந்த TF, என்னை வெளியே வந்து தயவுசெய்து 143 00:08:26,800 --> 00:08:31,180 நீங்கள் எல்லாம் எப்படி விவாதிக்க விரும்பினால் உங்களுக்கு தெரியும் என்று CAS அல்லது ஒரு. 144 00:08:31,180 --> 00:08:35,539 >> எனவே அறையில் இங்கே பெற்றோர்கள் கவர, CS50 நூலகம் என்ன? 145 00:08:36,429 --> 00:08:40,390 [சிரிப்பு] நல்ல வேலை. 146 00:08:40,390 --> 00:08:48,340 CS50 நூலகம் என்ன? Yeah. >> [மாணவர்] அது குறியீடு ஒரு முன் எழுதப்பட்ட ஜோடி [செவிக்கு புலப்படாமல்] 147 00:08:48,340 --> 00:08:49,750 சரி, நல்ல. 148 00:08:49,750 --> 00:08:53,240 அதை நாம் ஊழியர்கள் எழுதிய குறியீடு ஒரு முன் எழுதப்பட்ட ஜோடி, நாங்கள், நீங்கள் அளிக்கும் 149 00:08:53,240 --> 00:08:55,030 என்று, சில பொதுவான செயல்பாடுகளை வழங்குகிறது 150 00:08:55,030 --> 00:08:59,020 என்னை ஒரு சரம் கிடைக்கும் போன்ற விஷயங்களுடன், என்னை ஒரு முழு எண்ணாக - இங்கே பட்டியலிடப்பட்டுள்ளது என்று செயல்பாடுகளை அனைத்து. 151 00:08:59,020 --> 00:09:02,260 >> இப்போது தொடங்கி, நாம் உண்மையில் இந்த பயிற்சி சக்கரங்கள் எடுக்க தொடங்கும். 152 00:09:02,260 --> 00:09:05,050 நாங்கள், நீங்கள் ஒரு சரம் எடுத்து ஆரம்பிக்க போகிறோம் 153 00:09:05,050 --> 00:09:08,870 இது திரும்ப என்ன உண்மையான தரவு வகை ஒரு பொருள் இருந்தது? >> [பல மாணவர்கள்] சார் *. 154 00:09:08,870 --> 00:09:12,730 கரி *. பெற்றோர்கள், அந்த ஒருவேளை [செய்கிறது ஷ்ஷ்ஷ் ஒலி] இருந்தது. நல்லது. 155 00:09:12,730 --> 00:09:17,550 கரி * நாம், நமது சொல்லகராதி இருந்து சரம் நீக்க அனைத்து இன்னும் திரையில் பார்க்க ஆரம்பிப்போம் 156 00:09:17,550 --> 00:09:19,730 உண்மையில் குறியீடு எழுதி அது வரும் குறைந்தபட்சம் போது. 157 00:09:19,730 --> 00:09:22,840 இதேபோல், நாம் இந்த செயல்பாடுகளில் சில அளவுக்கு பயன்படுத்தி நிறுத்த வேண்டும் 158 00:09:22,840 --> 00:09:25,280 நமது திட்டங்கள் இன்னும் அதிநவீன பெற போகிறோம் என்பதால். 159 00:09:25,280 --> 00:09:28,480 மாறாக தான், ஒரு வரியில் ஒளிரும் அங்கே உட்கார்ந்து நிரல்களை எழுத 160 00:09:28,480 --> 00:09:31,870 ஏதாவது தட்டச்சு பயனர் காத்து, நீங்கள் வேறு உங்கள் உள்ளீடுகள் கிடைக்கும். 161 00:09:31,870 --> 00:09:35,490 உதாரணமாக, நீங்கள் உள்ளூர் நிலைவட்டில் பிட்கள் ஒரு தொடர் இருந்து வருகிறேன். 162 00:09:35,490 --> 00:09:38,580 நீங்கள் பதிலாக, ஒரு பிணைய இணைப்பு இருந்து எதிர்காலத்தில் அழைத்து வருகிறேன் 163 00:09:38,580 --> 00:09:40,230 எங்கோ சில இணைய. 164 00:09:40,230 --> 00:09:44,110 >> அதனால் முதல் முறையாக இந்த அடுக்கு தலாம் நாம் மற்றும் CS50 அப்ளையன்ஸ் மேலே 165 00:09:44,110 --> 00:09:49,010 நீங்கள் # வாரங்கள் உட்பட வருகிறோம் எந்த cs50.h என்று இந்த கோப்பு,, 166 00:09:49,010 --> 00:09:51,140 ஆனால் அது உண்மையில் இந்த உள்ளே என்ன என்று பார்ப்போம். 167 00:09:51,140 --> 00:09:54,430 நீல கோப்பின் மேல் தான் கருத்துக்கள் ஒரு மொத்தமாக உள்ளது: 168 00:09:54,430 --> 00:09:57,050 உத்தரவாதத்தை தகவல் மற்றும் உரிமம். 169 00:09:57,050 --> 00:09:59,050 இந்த மென்பொருள் ஒரு பொதுவான முன்னுதாரணம் வகை 170 00:09:59,050 --> 00:10:01,580 மென்பொருள் நிறைய இந்த திறந்த மூல என்று என்ன காரணம், 171 00:10:01,580 --> 00:10:05,220 இது யாரோ குறியீடு எழுதி அதை இலவசமாக கிடைக்க செய்யப்பட்டது என்று பொருள் 172 00:10:05,220 --> 00:10:10,470 தான் இயக்க மற்றும் பயன்படுத்த ஆனால் உண்மையில் படித்து மாற்ற மற்றும் உங்கள் சொந்த வேலை தொகையிடும். 173 00:10:10,470 --> 00:10:14,660 அதனால் நீங்கள் ஒரு மிக சிறிய வடிவத்தில் என்றாலும், திறந்த மூல மென்பொருள் பயன்படுத்தி வருகிறோம் என்ன. 174 00:10:14,660 --> 00:10:18,560 நான் கருத்துரைகள் கடந்த கீழே இருந்தால், எனினும், நாம் இன்னும் சில பழக்கமான விஷயங்களை பார்க்க ஆரம்பிப்பார்கள். 175 00:10:18,560 --> 00:10:25,010 Cs50.h கோப்பு தலைப்பு கோப்புகள் ஒரு மொத்தமாக கொண்டுள்ளது என்று இங்கே மேலே அறிவிப்பு. 176 00:10:25,010 --> 00:10:28,560 இந்த மிக, நாம் பார்த்ததில்லை, ஆனால் ஒரு பழக்கமான. 177 00:10:28,560 --> 00:10:32,270 இந்த இது நாம் இதுவரை, சுருக்கமாக என்றாலும், பார்த்தாயா? >> [மாணவர்] தரநிலை நூலகம். 178 00:10:32,270 --> 00:10:35,810 சரி, நிலையான நூலகம். stdlib.h malloc உள்ளது. 179 00:10:35,810 --> 00:10:38,320 ஒருமுறை நாங்கள், மாறும் நினைவக ஒதுக்கீடு பற்றி பேச ஆரம்பித்துவிட்டார்கள் 180 00:10:38,320 --> 00:10:41,650 நாம் அதே அடுத்த வாரம் திரும்பவும் வருவேன் அது, அந்த கோப்பு உட்பட தொடங்கியது. 181 00:10:41,650 --> 00:10:46,640 இது bool மற்றும் உண்மையான மற்றும் பொய்யான உண்மையில் சி உள்ளபடியே இல்லை என்று மாறிவிடும் 182 00:10:46,640 --> 00:10:49,440 நீங்கள் இங்கே இந்த கோப்பு அடங்கும் வரை. 183 00:10:49,440 --> 00:10:52,710 நாம் வாரங்கள் stdbool.h உட்பட 184 00:10:52,710 --> 00:10:55,620 நீங்கள் ஒரு, bool உண்மை அல்லது பொய். கருத்து பயன்படுத்த முடியும் 185 00:10:55,620 --> 00:10:58,620 இந்த இல்லாமல், நீங்கள் போலி அது வரிசைப்படுத்த மற்றும் ஒரு முழு எண்ணாக பயன்படுத்த வேண்டும் 186 00:10:58,620 --> 00:11:02,610 மற்றும் தன்னிச்சையாக 0 பொய் மற்றும் 1 உண்மை என்று வைத்து கொள்வோம். 187 00:11:02,610 --> 00:11:07,150 நாம் இன்னும் கீழே என்றால், இங்கே ஒரு சரம் எங்கள் வரையறை ஆகும். 188 00:11:07,150 --> 00:11:11,390 இந்த நட்சத்திரம் எங்கே உண்மையில் இல்லை என்று, நாங்கள் முன்பு சொன்னதை போல், மாறிவிடும். 189 00:11:11,390 --> 00:11:13,720 நீ சுற்றி இடைவெளி இருக்க முடியும். 190 00:11:13,720 --> 00:11:16,740 நாம் இந்த செமஸ்டர் தெளிவாக இந்த மேம்படுத்துவது 191 00:11:16,740 --> 00:11:18,620 நட்சத்திரம், வகை செய்ய வேண்டும் என்று 192 00:11:18,620 --> 00:11:21,700 இன்னும் கொஞ்சம் பொதுவான இல்லை என்றால் ஆனால், வெறும் பொதுவான உணர 193 00:11:21,700 --> 00:11:24,430 அங்கு வைத்து தான், ஆனால் செயல்படவில்லை அதே விஷயம். 194 00:11:24,430 --> 00:11:27,720 நாம் இன்னும் கீழே படிக்க வேண்டும் ஆனால் இப்போது, தான் GetInt பாருங்கள் நாம் 195 00:11:27,720 --> 00:11:32,190 நாம் வேறு எதையும் இந்த செமஸ்டர் முன் அந்த ஒருவேளை முதல் பயன்படுத்தப்படும் என்பதால். 196 00:11:32,190 --> 00:11:37,440 இங்கே GetInt உள்ளது. இது என்ன? >> [மாணவர்] ஒரு முன்மாதிரி. >> இது ஒரு முன்மாதிரி இருக்கிறது. 197 00:11:37,440 --> 00:11:41,410 பொதுவாக, நாம் நம் டாப்ஸ் உள்ள முன்மாதிரிகளை விட்டீர்கள். கேட்ச் கோப்புகள், 198 00:11:41,410 --> 00:11:46,690 ஆனால் நீங்கள் இங்கே இது போன்ற தலைப்பு கோப்புகள்,. h கோப்புகள், உள்ள முன்மாதிரிகளை முடியும் 199 00:11:46,690 --> 00:11:50,840 அதனால் நீங்கள் சில செயல்பாடுகளை எழுத போது, மற்ற மக்கள் பயன்படுத்த முடியும் வேண்டும் என்று 200 00:11:50,840 --> 00:11:53,550 இது, சரியாக CS50 நூலகம் விஷயத்தில் 201 00:11:53,550 --> 00:11:57,040 நீங்கள், cs50.c போல் உங்கள் செயல்பாடுகளை செயல்படுத்த மட்டும் 202 00:11:57,040 --> 00:12:02,790 நீங்கள் இல்லை என்று கோப்பின் மேல் ஆனால் ஒரு தலைப்பு கோப்பு மேலே முன்மாதிரிகளை வைத்து. 203 00:12:02,790 --> 00:12:07,170 பின்னர் அந்த தலைப்பு கோப்பு நண்பர்கள் மற்றும் சக அடங்கும் என்ன 204 00:12:07,170 --> 00:12:09,760 உடன் # தங்கள் குறியீடு சேர்க்க. 205 00:12:09,760 --> 00:12:12,210 இந்த நேரத்தில், நீ, இந்த முன்மாதிரிகளை அனைத்து உட்பட 206 00:12:12,210 --> 00:12:16,580 இது உங்கள் கோப்பு மேலே ஆனால் இந்த மூலமாக #, அமைப்பு ஆகியவை அடங்கும் 207 00:12:16,580 --> 00:12:20,070 உங்கள் சொந்த அவை அடிப்படையில் பிரதிகள் மற்றும் பசைகள் இந்த கோப்பு. 208 00:12:20,070 --> 00:12:23,070 இங்கே சில மிகவும் விரிவான ஆவணங்கள் ஆகும். 209 00:12:23,070 --> 00:12:25,640 GetInt ஒரு முழு எண்ணாக வரும் என்று வழங்கப்பட்டது நாம் மிகவும் அதிகமாக எடுத்துள்ளேன், 210 00:12:25,640 --> 00:12:27,640 சில மூலையில் வழக்குகள் உள்ளன அவுட் ஆனால் அது மாறிவிடும். 211 00:12:27,640 --> 00:12:31,810 என்ன ஒரு quintillion, வழி மிக பெரிய என்று பல பயனர் வகைகள் என்றால், 212 00:12:31,810 --> 00:12:35,490 என்று ஒரு முழு எண்ணாக உள்ளே பொருந்தும் முடியாது? எதிர்பார்க்கப்படும் நடத்தை என்ன? 213 00:12:35,490 --> 00:12:38,020 வெறுமனே, அதை யூகிக்கக்கூடிய தான். 214 00:12:38,020 --> 00:12:40,280 இந்த வழக்கில், நீங்கள் உண்மையில், நன்றாக அச்சு படிக்க வேண்டும் 215 00:12:40,280 --> 00:12:44,500 நீங்கள் உண்மையில் அந்த வரியை படிக்க முடியாது என்றால், இந்த வருமானத்தை INT_MAX பார்க்கிறேன். 216 00:12:44,500 --> 00:12:48,320 நாம் இது பற்றி பேசினார், ஆனால் அதன் மூலதன அடிப்படையில், அது என்ன ஒருவேளை? 217 00:12:48,320 --> 00:12:50,640 [மாணவர்] ஒரு நிலையான. >> இது ஒரு நிலையான தான். 218 00:12:50,640 --> 00:12:54,770 அது ஒருவேளை அந்த தலைப்பு கோப்புகள் ஒரு அறிவித்தார் என்று சில சிறப்பு நிலையான தான் 219 00:12:54,770 --> 00:13:00,090 , கோப்பு வரை அதிக நேரம், மற்றும் INT_MAX சுமார் 2 பில்லியன் போன்ற ஒருவேளை ஏதாவது 220 00:13:00,090 --> 00:13:04,990 நாம் எப்படியாவது என்று ஏதாவது குறிப்பிட்ட தேவை என்று அவர் யோசனை, தவறு 221 00:13:04,990 --> 00:13:10,700 நாங்கள், ஆம், எங்கள் வசம் 4 பில்லியன் எண்கள் இல்லை: -2 பில்லியன் வரை 2 பில்லியன் மீது, கொடுக்க அல்லது எடுத்து. 222 00:13:10,700 --> 00:13:14,710 சரி, என்ன நிரலாக்க பொதுவாக, நீங்கள் அந்த எண்கள் ஒரு திருட உள்ளது 223 00:13:14,710 --> 00:13:18,920 ஒருவேளை 0, ஒருவேளை 2 பில்லியன், ஒருவேளை -2 பில்லியன், 224 00:13:18,920 --> 00:13:23,280 நீங்கள் உலக செய்வேன் என்று நீங்கள் சாத்தியமான மதிப்புகள் ஒரு செலவு 225 00:13:23,280 --> 00:13:26,820 ஏதாவது தவறு நடந்தால் அது, நான் இந்த சூப்பர் பெரிய மதிப்பு வருவேன். 226 00:13:26,820 --> 00:13:31,030 ஆனால் நீங்கள் பயனர் 234 போன்ற ரகசிய ஏதாவது தட்டச்சு வேண்டாம் ..., உண்மையிலேயே பெரிய எண். 227 00:13:31,030 --> 00:13:34,060 நீங்கள் ஒரு நிலையான அதனை பொதுமைப்படுத்த. 228 00:13:34,060 --> 00:13:38,060 நீங்கள் கடந்த சில வாரங்களில் குத இருந்தது என்றால் உண்மையில், எந்த நேரத்தில் நீங்கள், GetInt என்று 229 00:13:38,060 --> 00:13:42,900 நிலை INT_MAX பயனர் வகை செய்தால் நீங்கள் ஒரு கொண்டு சோதனை வேண்டும், 230 00:13:42,900 --> 00:13:46,590 அல்லது, இன்னும் குறிப்பாக, அதை செய்தால் தான், GetInt மீண்டும் INT_MAX செய்தது, 231 00:13:46,590 --> 00:13:51,830 உண்மையில் அவர்கள் அதை தட்டச்சு இல்லை என்பதாகும். ஏதோ இந்த விஷயத்தில் தவறு. 232 00:13:51,830 --> 00:13:56,080 எனவே இது பொதுவாக ஒரு சிறப்பு அதாவது ஒரு காவலாளி மதிப்பு, என்று என்ன இருக்கிறது. 233 00:13:56,080 --> 00:13:58,120 >> . கேட்ச் கோப்பு மாற்ற இப்போது நாம். 234 00:13:58,120 --> 00:14:01,340 சி கோப்பு சில நேரம் பயன்பாட்டிற்கான இருந்த. 235 00:14:01,340 --> 00:14:06,840 மற்றும் உண்மையில், பயன்பாட்டிற்கான அது முன் தொகுக்கப்பட்ட நாம் பொருள் குறியீடு என்று அந்த விஷயத்தை பற்றி உங்களுக்கு உள்ளது 236 00:14:06,840 --> 00:14:09,540 கணினி தெரியும், ஏனெனில் அது எங்கே ஆனால் அது உங்களுக்கு தேவையில்லை 237 00:14:09,540 --> 00:14:11,730 இந்த வழக்கில் அது எங்கே: பயன்பாட்டிற்கான. 238 00:14:11,730 --> 00:14:17,400 இந்த நேரத்தில் GetInt மற்றும் GetInt வேலை எப்படி பார்க்க இப்போது கீழே நாம். 239 00:14:17,400 --> 00:14:19,460 இங்கே நாம் முன்னர் இதே போன்ற கருத்துக்கள் உண்டு. 240 00:14:19,460 --> 00:14:21,660 என்னை குறியீடு பகுதியில் பெரிதாக்க வேண்டும். 241 00:14:21,660 --> 00:14:23,900 மற்றும் நாம் GetInt செய்ய வேண்டும் பின்வரும் உள்ளது. 242 00:14:23,900 --> 00:14:25,700 எந்த உள்ளீடு எடுக்கும். 243 00:14:25,700 --> 00:14:29,510 , அது (உண்மை) போது, ஒரு முழு எண்ணாக கொடுக்கிறது, நாம் வேண்டுமென்றே முடிவிலா சுழற்சி உள்ளது 244 00:14:29,510 --> 00:14:33,180 ஆனால் மறைமுகமாக நாம் எப்படியாவது இந்த வெளியே உடைக்க அல்லது இந்த க்குள் திரும்பிவிடுவேன். 245 00:14:33,180 --> 00:14:34,870 >> அது எப்படி இந்த வேலை பார்க்கிறேன். 246 00:14:34,870 --> 00:14:39,240 நாம், லூப் உள்ளே இந்த முதல் வரிசையில் 166 GetString பயன்படுத்தி தெரிகிறது. 247 00:14:39,240 --> 00:14:43,780 என்ன சூழ்நிலையில் GetString திரும்பி ஏனெனில் இந்த இப்போது நல்ல நடைமுறையில் உள்ளது 248 00:14:43,780 --> 00:14:47,660 சிறப்பு சொல் NULL? >> [மாணவர்] ஏதாவது தவறு நேர்ந்தால். 249 00:14:47,660 --> 00:14:51,630 ஏதாவது தவறு நடந்தால். நீங்கள் GetString போன்ற ஏதாவது அழைப்பு தவறு என்ன? 250 00:14:54,960 --> 00:14:57,640 Yeah. >> [மாணவர்] Malloc அதை ints கொடுக்க முடியவில்லை. 251 00:14:57,640 --> 00:14:59,150 Yeah. ஒருவேளை malloc முடியவில்லை. 252 00:14:59,150 --> 00:15:03,190 எங்கோ பேட்டை கீழ், GetString நினைவக ஒதுக்கீடு எந்த malloc, அழைப்பு 253 00:15:03,190 --> 00:15:06,020 இதில் கதாபாத்திரங்கள் அனைத்தும் கணினி கடை உதவுகிறது 254 00:15:06,020 --> 00:15:07,750 அந்த விசைப்பலகை கொண்டு பயனர் வகைகள். 255 00:15:07,750 --> 00:15:11,590 மேலும், பயனர் இலவச நேரம் ஒரு முழு நிறைய உதாரணமாக, இன்னும் தட்டச்சு வேண்டும் 256 00:15:11,590 --> 00:15:16,160 கணினி விட பாத்திரங்கள், விட 2 பில்லியன் எழுத்துக்கள் கூட ரேம் உள்ளது. 257 00:15:16,160 --> 00:15:19,250 GetString நீங்கள் அந்த குறிப்பிட்ட முடியும் உள்ளது. 258 00:15:19,250 --> 00:15:22,560 இந்த ஒரு சூப்பர், சூப்பர் அசாதாரணமானது மூலையில் வழக்கில், கூட 259 00:15:22,560 --> 00:15:24,340 இது, எப்படியாவது இந்த கையாள முடியும் வேண்டும் 260 00:15:24,340 --> 00:15:28,750 அதனால் நாம் திரும்பி சென்று அதன் ஆவணங்களை படித்து இருந்தால், GetString, உண்மையில் வருவாய் NULL செய்யும். 261 00:15:28,750 --> 00:15:34,460 GetString NULL திரும்புவதன் மூலம் முடியவில்லை, எனவே இப்போது என்றால், GetInt INT_MAX திரும்புவதன் மூலம் தோத்துடுவாங்க 262 00:15:34,460 --> 00:15:37,690 ஒரு காவலாளி என. இவை மனித மரபுகளை இருக்கும். 263 00:15:37,690 --> 00:15:41,450 இந்த வழக்கு என்று என்று ஒரே வழி ஆவணங்களை படித்து உள்ளார். 264 00:15:41,450 --> 00:15:45,040 >> Int உண்மையில் ஆயிற்று அமைந்துள்ள உருட்டலாம் நாம். 265 00:15:45,040 --> 00:15:51,160 நான் ஒரு பிட் மேலும் கீழே இருந்தால், வரி 170, நாம் இந்த வரிகளை மேலே ஒரு கருத்து உள்ளது. 266 00:15:51,160 --> 00:15:55,100 நாம் 172 இல், பிறகு ஒரு முழு எண்ணாக, n, மற்றும் ஒரு கரி கேட்ச், மற்றும் இந்த புதிய செயல்பாடு, அறிவிக்க 267 00:15:55,100 --> 00:15:58,930 நீங்கள் சில, sscanf முன் முழுவதும் தடுமாறின. 268 00:15:58,930 --> 00:16:00,870 இந்த சரம் scanf குறிக்கிறது. 269 00:16:00,870 --> 00:16:05,700 வேறுவிதமாக கூறினால், என்னை ஒரு சரம் கொடுக்க நான் வட்டி தகவல் துண்டுகளை அதை ஸ்கேன் செய்யும். 270 00:16:05,700 --> 00:16:07,360 இதற்கு என்ன அர்த்தம்? 271 00:16:07,360 --> 00:16:11,800 நான் Enter விசையை பின்னர் விசைப்பலகை மணிக்கு 123, உண்மையில், தட்டச்சு மற்றும் நினைக்கிறேன். 272 00:16:11,800 --> 00:16:16,470 GetString மூலம் திரும்பிய போது 123 தரவு வகை என்ன? >> [மாணவர்] சரம். 273 00:16:16,470 --> 00:16:18,380 அது சரி, வெளிப்படையாக ஒரு சரம் இருக்கிறது? நான் ஒரு சரம் கிடைத்தது. 274 00:16:18,380 --> 00:16:23,220 அதனால் 123, உண்மையில் நான், மேற்கோள், அது இறுதியில் \ 0 123 ஆகும். 275 00:16:23,220 --> 00:16:27,110 என்று ஒரு முழு எண்ணாக இல்லை. ஒரு எண் அல்ல. இது பல தெரிகிறது ஆனால் உண்மையில் இல்லை. 276 00:16:27,110 --> 00:16:29,080 அதனால் என்ன GetInt செய்ய வேண்டும்? 277 00:16:29,080 --> 00:16:35,750 123 \ 0 - - மற்றும் எப்படியோ ஒரு உண்மையான முழு மாற்ற அது வலது இடது என்று சரம் ஸ்கேன் செய்ய வேண்டும். 278 00:16:35,750 --> 00:16:37,850 நீங்கள் இதை செய்ய எப்படி கண்டுபிடிக்க முடியும். 279 00:16:37,850 --> 00:16:41,450 நீங்கள் pset2 திரும்ப நினைத்தால், நீங்கள் மறைமுகமாக சீசர் ஒரு சிறிய வசதியாக கிடைத்தது 280 00:16:41,450 --> 00:16:44,820 அல்லது வைஜெனேர், நீ ஒரு சரம் மீது மீண்டும் கூறு முடியாது, நீங்கள் ints செய்ய எழுத்துகள் மாற்ற முடியும். 281 00:16:44,820 --> 00:16:46,710 ஆனால் கர்மம், அது வேலை ஒரு முழு நிறைய. 282 00:16:46,710 --> 00:16:49,860 ஏன் அந்த என்று sscanf போன்ற ஒரு செயல்பாடு அழைக்க கூடாது? 283 00:16:49,860 --> 00:16:54,230 எனவே sscanf ஒரு வாதம் எதிர்பார்க்கிறது - இந்த வழக்கில் வரி ஒரு சரம் ஆகும், என்று. 284 00:16:54,230 --> 00:17:01,840 நீ இந்த சரம் பார்க்கும் எதிர்பார்க்க என்ன, மிகவும் ஒத்த வேண்டும் printf, மேற்கோளில் குறிப்பிடவும். 285 00:17:01,840 --> 00:17:09,000 என்ன நான் இங்கே சொல்கிறேன் நான் ஒரு தசம எண் மற்றும் ஒருவேளை ஒரு பாத்திரம் பார்க்க எதிர்பார்க்க உள்ளது. 286 00:17:09,000 --> 00:17:12,000 இந்த ஒரு நொடியில் வழக்கு ஏன் நாம் பார்க்க வேண்டும். 287 00:17:12,000 --> 00:17:15,869 அது இந்த குறியீடு, இப்போது பொருள் நினைவூட்டும் என்று மாறும் நாம் பற்றி பேச ஆரம்பித்துவிட்டார்கள் 288 00:17:15,869 --> 00:17:17,619 ஒரு வாரம் முன்பு. 289 00:17:17,619 --> 00:17:21,740 என்ன & n மற்றும் & கேட்ச் இங்கே நமக்கு என்ன? >> [மாணவர்] n, முகவரி மற்றும் கேட்ச் முகவரி. 290 00:17:21,740 --> 00:17:25,400 Yeah. அது என்னை கேட்ச், n மற்றும் முகவரி முகவரியை கொடுக்கிறாள். ஏன் அவசியம்? 291 00:17:25,400 --> 00:17:30,220 நீங்கள் சி செயல்பாடுகளை கொண்டு, நீங்கள் எப்பொழுதுமே ஒரு மதிப்பு அல்லது மதிப்பை திரும்ப முடியும் என்று. 292 00:17:30,220 --> 00:17:34,530 நீங்கள் ஒரு முழு எண்ணாக, ஒரு சரம், ஒரு மிதவை, ஒரு கரி, என்ன, அல்லது நீங்கள் வெற்றிடத்தை திரும்ப முடியும், திரும்ப முடியும் 293 00:17:34,530 --> 00:17:38,030 ஆனால் நீங்கள் மட்டும் அதிகபட்சம் ஒன்று திரும்ப முடியும். 294 00:17:38,030 --> 00:17:42,760 ஆனால் இங்கே நாம் sscanf ஒருவேளை ஒரு முழு எண்ணாக, ஒரு தசம எண், என்னை திரும்ப வேண்டும் 295 00:17:42,760 --> 00:17:46,220 மேலும் ஒரு கரி, மற்றும் நான் ஒரு நொடியில் ஏன் எரிப்பதை விளக்க வேண்டும். 296 00:17:46,220 --> 00:17:51,460 நீங்கள் திறம்பட sscanf இரண்டு விஷயங்கள் திரும்ப வேண்டும், ஆனால் அந்த சி வெறும் முடியாது 297 00:17:51,460 --> 00:17:55,200 நீங்கள் இரண்டு முகவரிகள் கடந்து செல்லும் அந்த பணிபுரிய முடியும் 298 00:17:55,200 --> 00:17:57,370 விரைவில் நீங்கள் ஒரு விழாவில் இரண்டு முகவரிகள் கொடுத்துவிடலாம் ஏனெனில், 299 00:17:57,370 --> 00:18:00,470 அந்த செயல்பாடு இன்னும் என்ன செய்ய முடியும்? >> [மாணவர்] அந்த முகவரிக்கு எழுதுங்கள். 300 00:18:00,470 --> 00:18:02,010 அந்த முகவரிகள் எழுத முடியும். 301 00:18:02,010 --> 00:18:05,770 நீங்கள் நட்சத்திரம் நடவடிக்கையை பயன்படுத்தி அந்த முகவரிகள் ஒவ்வொன்றுக்கும், அங்கு செல்ல முடியும். 302 00:18:05,770 --> 00:18:11,260 இது மாறிகளின் மதிப்புகளை மாற்றுவதற்கு மாதிரியான மீண்டும் கதவை இயக்கவியல் ஆனால் மிகவும் பொதுவாக 303 00:18:11,260 --> 00:18:14,870 இந்த வழக்கில், இரண்டு - ஒரு இடத்தில் விட. 304 00:18:14,870 --> 00:18:21,340 இப்போது நான் == 1 சரிபார்ப்பு பின்னர் அந்த உண்மையில், உண்மையான மதிப்பீடு என்றால் n திரும்பி பார்க்க. 305 00:18:21,340 --> 00:18:26,170 அதனால் என்ன நடக்கிறது? தொழில்நுட்ப, நாம் உண்மையில் GetInt நடக்க வேண்டும் இதெல்லாம். 306 00:18:26,170 --> 00:18:30,740 ஆனால், மேற்கோள் 123 - நாம் பேச, அலச வேண்டும், நாம் சரம் படிக்க வேண்டும் - 307 00:18:30,740 --> 00:18:34,560 நாம் செய்ய sscanf சொல்கிறாய் என்ன ஒரு எண், அங்கு போல் தெரிகிறது என்றால் 308 00:18:34,560 --> 00:18:38,190 இந்த மாறி n எனக்கு - 123 - அந்த எண்ணை வைத்து. 309 00:18:38,190 --> 00:18:42,090 ஏன் நான் உண்மையில் இந்த அதே இருக்கிறது? 310 00:18:42,090 --> 00:18:48,220 நீங்கள் இங்கே ஒரு பாத்திரம் வந்துவிடும் என்று sscanf பங்கு என்ன? 311 00:18:48,220 --> 00:18:53,470 [செவிக்கு புலப்படாமல் மாணவர் பதில்] >> ஒரு தசம புள்ளி உண்மையில் வேலை முடியும். 312 00:18:53,470 --> 00:18:56,330 ஒரு கணம் நினைத்து தான் நடத்த வேண்டும். வேறு என்ன? 313 00:18:56,330 --> 00:18:59,270 [மாணவர்] அது NULL இருக்க முடியும். >> நல்ல சிந்தனை. அது வெற்று தன்மை இருக்க முடியும். 314 00:18:59,270 --> 00:19:01,660 இந்த வழக்கில் உண்மையில் இல்லை. Yeah. >> [மாணவர்] ஆஸ்கி. 315 00:19:01,660 --> 00:19:04,340 ASCII. அல்லது என்னை மேலும் பொதுமைப்படுத்த நாம். 316 00:19:04,340 --> 00:19:06,640 அங்கு% கேட்ச் தான் பிழை சோதனை உள்ளது. 317 00:19:06,640 --> 00:19:09,300 நாம், எண் பிறகு ஒரு பாத்திரத்தில் இருக்கும் விரும்பவில்லை 318 00:19:09,300 --> 00:19:11,870 ஆனால் என்ன இது எனக்கு செய்ய அனுமதிக்கிறது பின்வரும் உள்ளது. 319 00:19:11,870 --> 00:19:18,210 அது sscanf, இங்கே இந்த எடுத்துக்காட்டாக n மற்றும் கேட்ச் உள்ள மதிப்புகள் சேமித்து தவிர, மாறிவிடும் 320 00:19:18,210 --> 00:19:24,890 இது இது மாறிகள் எண்ணிக்கை கொடுக்கிறது என்பது என்ன, அது உள்ளே மதிப்புகள் வைத்து 321 00:19:24,890 --> 00:19:30,260 நீங்கள் மட்டும் 123 தட்டச்சு என்றால், பிறகு மட்டுமே% d பொருத்த நடக்கிறது 322 00:19:30,260 --> 00:19:33,880 மற்றும் n, 123 போன்ற ஒரு மதிப்பு சேமிக்கப்பட்ட 323 00:19:33,880 --> 00:19:35,640 மற்றும் எதுவும் கேட்ச் வைக்க. 324 00:19:35,640 --> 00:19:37,620 சி, அதனால் பேச, ஒரு குப்பை மதிப்பு உள்ளது - 325 00:19:37,620 --> 00:19:40,730 குப்பை ஏனெனில் அது சில மதிப்பு துவக்கப்படும். 326 00:19:40,730 --> 00:19:45,520 நான், அந்த பாயிண்டர்களின் 1 மக்கள் ஏனெனில் அந்த வழக்கில், sscanf 1 கொடுக்கிறது 327 00:19:45,520 --> 00:19:50,190 நான் நினைவக வரை விடுவிக்க வரி விடுவித்து மிக பெரும் வழக்கில், நான் ஒரு முழு எண்ணாக இல்லை 328 00:19:50,190 --> 00:19:54,000 அந்த GetString உண்மையில் ஒதுக்கீடு, மற்றும் நான், n திரும்ப 329 00:19:54,000 --> 00:19:58,500 அந்த அறிக்கையில் இருந்து வருகிறது மறுமுயற்சி நீங்கள் எப்போதும் வியந்து வேறு, அது இங்கேயே இருந்து வருகிறது. 330 00:19:58,500 --> 00:20:04,390 நீங்கள், இதற்கு மாறாக, நான் 123foo தட்டச்சு - உரை சில சீரற்ற வரிசையில் - 331 00:20:04,390 --> 00:20:08,490 sscanf எண், எண், எண், ஊ, பார்க்க போவது 332 00:20:08,490 --> 00:20:16,410 அதை n இல் 123 வைக்க நடக்கிறது; அதை கேட்ச் f ஆனது வைத்து பின்னர் 2 திரும்ப நடக்கிறது. 333 00:20:16,410 --> 00:20:20,640 எனவே தான் sscanf நடத்தை, ஒரு மிக எளிய வழி அடிப்படை வரையறையை பயன்படுத்தி, இல்லை - 334 00:20:20,640 --> 00:20:23,900 நன்றாக, முதல் பார்வையில் ஆனால் நாள் மிகவும் எளிமையான வழிமுறை இறுதியில் சிக்கலான - 335 00:20:23,900 --> 00:20:28,320 என்று ஒரு முழு எண்ணாக இருக்கிறது மற்றும் நீங்கள், என்று நான் இல்லை என்று மட்டும் தான்? 336 00:20:28,320 --> 00:20:29,860 இங்கு இடைவெளி வேண்டுமென்றே உள்ளது. 337 00:20:29,860 --> 00:20:34,000 நீங்கள் sscanf ஆவணத்தை வாசிக்க இருந்தால், அதை நீங்கள் இடைவெளி ஒரு பகுதி ஆகியவை அடங்கும் என்று நீங்கள் சொன்னால் 338 00:20:34,000 --> 00:20:38,810 தொடக்கத்தில் அல்லது இறுதியில், sscanf கூட, எந்த காரணத்திற்காகவும், பயனர் அனுமதிக்கும் 339 00:20:38,810 --> 00:20:41,860 தட்டுப்பட்டை 123 அடிக்க மற்றும் முறையான இருக்கும். 340 00:20:41,860 --> 00:20:44,150 அவர்கள் தட்டுப்பட்டை ஹிட் தான் நீங்கள் பயனர் கத்துகிறாய் 341 00:20:44,150 --> 00:20:48,640 தொடக்கத்தில் அல்லது இறுதியில், இது பயனர் நட்பு கொஞ்சம் அதிகம். 342 00:20:48,640 --> 00:20:52,300 >> பின்னர் எந்த கேள்விகளுக்கும் GetInt மீது? Yeah. >> [மாணவர்] நீங்கள் ஒரு கரி போட்டு என்றால் என்ன? 343 00:20:52,300 --> 00:20:54,030 கேள்வி நல்ல. 344 00:20:54,030 --> 00:20:59,890 நீங்கள் என்ன வெறும் f போன்ற எரிப்பதை தட்டச்சு மற்றும் இதுவரை 123 தட்டச்சு இல்லாமல் Enter விசையை என்றால்? 345 00:20:59,890 --> 00:21:02,420 நீங்கள் குறியீடு இந்த வரி நடத்தை பிறகு என்ன நினைக்கிறீர்கள்? 346 00:21:02,420 --> 00:21:04,730 [செவிக்கு புலப்படாமல் மாணவர் பதில்] 347 00:21:04,730 --> 00:21:08,790 அந்த வழக்கில், அதை n அல்லது கேட்ச் நிரப்ப போவது இல்லை, ஏனெனில் அப்படியா sscanf அதுவும் மறைக்க முடியாது. 348 00:21:08,790 --> 00:21:15,310 இது வழக்கு இதில் நான் அந்த காட்சியில் கவரும் நான் பதிலாக, 0 திரும்ப நடக்கிறது 349 00:21:15,310 --> 00:21:18,750 நான் எதிர்பார்த்த மதிப்பு 1 என்பதால். 350 00:21:18,750 --> 00:21:22,000 நான் ஒரே ஒரு வேண்டும் மற்றும் ஒரே ஒரு விஷயம் பூர்த்தி செய்ய வேண்டும். கேள்வி நல்ல. 351 00:21:22,000 --> 00:21:24,290 >> மற்றவர்களுக்கு? எல்லாம் சரி. 352 00:21:24,290 --> 00:21:26,250 >> இங்கே உள்ள செயல்பாடுகளை அனைத்து வழியாக சென்று நாம், 353 00:21:26,250 --> 00:21:29,500 ஆனால் மீதமுள்ள வட்டி ஒருவேளை தெரிகிறது என்று ஒரு GetString உள்ளது 354 00:21:29,500 --> 00:21:32,790 இது GetLongLong, GetFloat, GetInt, GetDouble என்று திருப்பி ஏனெனில் 355 00:21:32,790 --> 00:21:36,260 அனைத்து பந்தயம் GetString அவர்களின் செயல்பாடு நிறைய. 356 00:21:36,260 --> 00:21:39,750 எனவே அவர் இங்கே செயல்படுத்தப்படும் என்பதை பாருங்கள் நாம். 357 00:21:39,750 --> 00:21:43,630 இந்த ஒரு சிறிய சிக்கல் இருக்கிறது, ஆனால் அது அதே அடிப்படைகள் பயன்படுத்துகிறது 358 00:21:43,630 --> 00:21:45,670 நாம் கடந்த வாரம் பற்றி பேச ஆரம்பித்துவிட்டார்கள் என்று. 359 00:21:45,670 --> 00:21:49,490 GetString உள்ள, இது வரை இங்கே வெற்றிடத்தை படி இல்லை வாதத்தை எடுத்து 360 00:21:49,490 --> 00:21:53,730 அதை நான் வெளிப்படையாக இடையக என்று ஒரு சரம் அறிவித்தார் நான், ஒரு சரம் கொடுக்கிறது. 361 00:21:53,730 --> 00:21:56,270 நான் இன்னும் பயன்படுத்த வேண்டும் என்ன நடக்கிறது என்று எனக்கு தெரியாது, ஆனால் நாம் பார்க்க வேண்டும். 362 00:21:56,270 --> 00:21:58,390 திறன் முன்னிருப்பு 0 மூலம் தெரிகிறது. 363 00:21:58,390 --> 00:22:01,350 இல்லை நிச்சயமாக இந்த n இன்னும் பயன்படுத்த போகிறது என்று உறுதி, இல்லை என்று, 364 00:22:01,350 --> 00:22:03,590 ஆனால் இப்போது அது கொஞ்சம் சுவாரசியமான போகிறது. 365 00:22:03,590 --> 00:22:06,520 வரி 243, நாம் ஒரு முழு எண்ணாக, கேட்ச் அறிவிக்க. 366 00:22:06,520 --> 00:22:08,800 இந்த ஒரு முட்டாள் விவரம் வகை. 367 00:22:08,800 --> 00:22:15,820 ஒரு எரிப்பதை 8 பிட்கள் மற்றும் 8 பிட்கள் எப்படி பல மதிப்புகள் சேமிக்க முடியும்? >> [மாணவர்] 256. >> 256. 368 00:22:15,820 --> 00:22:20,730 நீங்கள் உள்ளன 256 வெவ்வேறு ASCII எழுத்துகள், வேண்டும் என்றால் பிரச்சனை 369 00:22:20,730 --> 00:22:23,340 நீங்கள் திரும்ப நினைத்தால் - இந்த நினைவில்கொள்ள ஒன்று அல்ல. 370 00:22:23,340 --> 00:22:25,710 நீ பெரிய ஆஸ்கி விளக்கப்படம் திரும்ப நினைத்தால் ஆனால் நாம் வாரங்கள் முன்பு இருந்தது, 371 00:22:25,710 --> 00:22:30,600 128 அல்லது 256 ASCII எழுத்துக்களை அந்த வழக்கில் இருந்தன. 372 00:22:30,600 --> 00:22:32,940 நாம் 0 க்கள் மற்றும் 1 வி வரை அனைத்து வடிவங்களையும் பயன்படுத்தலாம். 373 00:22:32,940 --> 00:22:36,210 நீங்கள் ஒரு பிழை கண்டுபிடிக்க முடியும் விரும்பினால் ஒரு பிரச்சினை 374 00:22:36,210 --> 00:22:40,190 நீங்கள் ஏற்கனவே உங்கள் பாத்திரங்களின் 256 மதிப்புகள் பயன்படுத்தி என்றால், ஏனெனில், 375 00:22:40,190 --> 00:22:43,050 இப்போது நீங்கள் சொல்வது எந்த வகையில் ஏனெனில் நீங்கள் உண்மையில், மேலே ஏற்பாடு செய்யவில்லை 376 00:22:43,050 --> 00:22:46,270 இந்த ஒரு முறைப்படியாக பாத்திரம் அல்ல, இந்த சில பிழையான செய்தி. 377 00:22:46,270 --> 00:22:50,270 அதனால் என்ன உலகம் இல்லை அவர்கள் அடுத்த பெரிய மதிப்பு, ஒரு முழு எண்ணாக போல, பயன்படுத்த உள்ளது 378 00:22:50,270 --> 00:22:54,720 நீங்கள் 4 பில்லியன் முடியும் மதிப்புகள், துணுக்குகள், 32 ஒரு பைத்தியம் எண் என்று 379 00:22:54,720 --> 00:22:58,860 நீங்கள் சாதாரணமாக, அடிப்படையில் 257 அவர்களை பயன்படுத்தி முடிவுக்கு முடியும் 380 00:22:58,860 --> 00:23:01,720 1 இது ஒரு பிழை என சில சிறப்பு பொருள் உள்ளது. 381 00:23:01,720 --> 00:23:03,120 >> எனவே எப்படி இந்த வேலை பார்க்கிறேன். 382 00:23:03,120 --> 00:23:07,760 வரி 246 இல், நான், fgetc அழைப்பு என்று இந்த பெரிய போது வளைய வேண்டும் 383 00:23:07,760 --> 00:23:11,090 f பொருள் கோப்பு, மிகவும் getc, பின்னர் stdin. 384 00:23:11,090 --> 00:23:15,520 இது வெறும் விசைப்பலகை உள்ளீடு படிக்க சொல்லி இன்னும் துல்லியமான வழி நடக்கிறது. 385 00:23:15,520 --> 00:23:19,300 நிலையான உள்ளீட்டு அதாவது விசைப்பலகை, நிலையான வெளியீடு, திரை பொருள் 386 00:23:19,300 --> 00:23:23,310 நாம் pset4 உள்ள பார்க்கிறேன் இது நிலையான பிழை, திரை பொருள் 387 00:23:23,310 --> 00:23:27,490 ஆனால் அது உண்மையான வெளியீட்டை திரையில் ஒரு சிறப்பு பகுதியாக இணைத்து இல்லை என்று 388 00:23:27,490 --> 00:23:30,750 நீங்கள் அச்சிட நோக்கம் என்று. எதிர்காலத்தில் அது இன்னும். 389 00:23:30,750 --> 00:23:34,440 எனவே fgetc வெறும் விசைப்பலகை இருந்து ஒரு பாத்திரம் படித்து எங்கே சேமிக்க வேண்டும்? 390 00:23:34,440 --> 00:23:37,350 கேட்ச் அதை சேமிக்க. 391 00:23:37,350 --> 00:23:41,360 பின்னர் சரிபார்க்கவும் - மிகவும் நான் இங்கே சில பூலியன் இணைப்புச்சொற்கள் பயன்படுத்தி நான் - 392 00:23:41,360 --> 00:23:46,000 அது சமமாக இல்லை என்பதை சரிபார்க்க - \ n அதனால் பயனர் உள்ளிடவும் தாக்கியது, நாம் அந்த கட்டத்தில் நிறுத்த வேண்டும், 393 00:23:46,000 --> 00:23:49,850 ஓட்டையை முடிவுக்கு - நாம் மேலும் சிறப்பு நிலையான EOF சோதிக்க வேண்டும், 394 00:23:49,850 --> 00:23:53,610 உங்களுக்கு தெரியும் அல்லது நினைக்கிறேன் என்றால், அது என்ன இது நிற்க? கோப்பு >> [மாணவர்] முடிவு. கோப்பு >> முடிவு. 395 00:23:53,610 --> 00:23:56,560 இந்த வகையான அறிவுப்பூர்வமாக ஏனெனில் நான் விசைப்பலகை உள்ள தட்டச்சு செய்கிறேன் என்றால், 396 00:23:56,560 --> 00:23:58,870 இந்த தொடர்பு இல்லை கோப்பு, உண்மையில் அங்கு 397 00:23:58,870 --> 00:24:01,150 ஆனால் இந்த குறிக்கும் பொதுவான கால வரிசைப்படுத்த 398 00:24:01,150 --> 00:24:04,220 வேறு எதுவும் மனித விரல்கள் இருந்து வருகிறது. 399 00:24:04,220 --> 00:24:06,460 EOF - கோப்பு இறுதியில். 400 00:24:06,460 --> 00:24:09,920 நீங்கள் எப்போதும் உங்கள் விசைப்பலகை உள்ள கட்டுப்பாடு டி ஹிட் தான் என்று ஒரு ஒதுக்கி, நீங்கள் இன்னும் வேண்டும் இல்லை என்று - 401 00:24:09,920 --> 00:24:15,230 நீங்கள் கட்டுப்பாடு சி வெற்றி - கட்டுப்பாடு டி EOF என்று இந்த சிறப்பு நிலையான அனுப்புகிறது. 402 00:24:15,230 --> 00:24:19,850 எனவே இப்போது நாம் சில மாறும் நினைவக ஒதுக்கீடு இல்லை. 403 00:24:19,850 --> 00:24:23,440 >> நீங்கள் (n + 1> திறன்). இப்போது நான் n விளக்க வேண்டும். 404 00:24:23,440 --> 00:24:26,100 N தான் எவ்வளவு பைட்டுகள், இடையகம் தற்போது 405 00:24:26,100 --> 00:24:28,620 நீங்கள் தற்போது பயனர் இருந்து கட்டிட என்று சரம். 406 00:24:28,620 --> 00:24:33,450 நீங்கள் பஃப்பரில் திறன் விட உங்கள் இடையகம் மேலும் எழுத்துக்கள் இருந்தால், 407 00:24:33,450 --> 00:24:37,410 உள்ளுணர்வாக நாம் செய்ய வேண்டியது மிகவும் திறன் ஒதுக்க வேண்டும். 408 00:24:37,410 --> 00:24:43,330 அதனால் நான் இங்கே கணித சில மீது ஆடையெடு இங்கு மட்டுமே இந்த விழாவில் கவனம் செலுத்த போகிறேன். 409 00:24:43,330 --> 00:24:46,070 நீங்கள் malloc என்ன தெரியுமா அல்லது குறைந்தபட்சம் பொதுவாக தெரிந்திருந்தால். 410 00:24:46,070 --> 00:24:48,970 Realloc என்ன ஒரு யூகம் எடுத்து. >> [மாணவர்] நினைவக சேர்க்கிறது. 411 00:24:48,970 --> 00:24:52,920 இது நினைவக சேர்த்து இல்லை. அது பின்வருமாறு நினைவக reallocates. 412 00:24:52,920 --> 00:24:57,220 நீங்கள் அந்த நினைவகம் இன்னும் கொடுக்க சரம் இறுதியில் அறையில் இன்னும் இருந்தால் 413 00:24:57,220 --> 00:25:00,000 அதை முதலில் நீங்கள் கொடுக்கும் விட, நீங்கள் கூடுதல் மெமரி கிடைக்கும். 414 00:25:00,000 --> 00:25:03,460 எனவே நீங்கள் மீண்டும் மீண்டும் மீண்டும் மீண்டும் சரம் பாத்திரங்கள் வைத்து கொள்ள முடியும். 415 00:25:03,460 --> 00:25:05,830 அந்த வழக்கு இல்லையென்றால் ஆனால் நீங்கள் நீண்ட காத்திருந்தனர் ஏனெனில் 416 00:25:05,830 --> 00:25:07,940 மற்றும் சீரற்ற ஏதோ நினைவாக plopped 417 00:25:07,940 --> 00:25:10,290 ஆனால் கூடுதல் நினைவகம் இங்கு இல்லை, நல்லது. 418 00:25:10,290 --> 00:25:13,100 Realloc, நீங்கள் அனைத்து கனரக தூக்கும் பயிற்சி செய்ய போகிறாள் 419 00:25:13,100 --> 00:25:16,750 நீங்கள் இதுவரை இங்கே இருந்து படித்த சரம் நகர்த்த அங்கு கீழே போட்டு, 420 00:25:16,750 --> 00:25:19,460 பின்னர் நீங்கள் அந்த இடத்தில் சில விமான கொடுக்க. 421 00:25:19,460 --> 00:25:22,550 >> அதனால் கையில் ஒரு அலை கொண்டு, என்னை என்ன GetString செய்து என்று சொல்கிறேன் 422 00:25:22,550 --> 00:25:26,330 இது ஒரு சிறிய தாங்கல், ஒருவேளை ஒரு ஒற்றை தன்மை, தொடங்கும் 423 00:25:26,330 --> 00:25:30,820 இரண்டு எழுத்துக்கள் பயனர் வகைகள் என்றால், GetString realloc அழைப்பு நிறைவடைகிறது மற்றும் நிதி 424 00:25:30,820 --> 00:25:33,150 ஒரு பாத்திரத்தில் தேவையான அளவு இல்லை; எனக்கு இரண்டு எழுத்துக்கள் கொடுக்க. 425 00:25:33,150 --> 00:25:35,950 நீங்கள் வளைய தர்க்கம் மூலம் படித்து பின்னர், அது என்ன நடக்கிறது 426 00:25:35,950 --> 00:25:39,600 3 கதாபாத்திரங்கள் தட்டச்சு பயனர்;, இப்போது இல்லை 2 ஆனால் 4 எழுத்துக்கள் என்னிடம் 427 00:25:39,600 --> 00:25:42,320 பிறகு என்னை 16 மற்றும் 32 கொடுக்க பிறகு, என்னை 8 கொடுக்க. 428 00:25:42,320 --> 00:25:45,000 நான் திறன் ஒவ்வொரு முறையும் இரட்டிப்பாக்க என்று நான் உண்மையில் 429 00:25:45,000 --> 00:25:48,570 தாங்கல் மெதுவாக வளர போவதில்லை என்று அர்த்தம், அது சூப்பர் வேகமாக வளர நடக்கிறது. 430 00:25:48,570 --> 00:25:51,380 என்ன அந்த பயன்படுத்தி இருக்கலாம்? 431 00:25:51,380 --> 00:25:54,600 நான் ஏன் இடையக அளவு இருமடங்காக 432 00:25:54,600 --> 00:25:58,020 பயனர் விசைப்பலகை இருந்து ஒரு கூடுதல் பாத்திரத்தில் வேண்டும் கூட? 433 00:25:58,020 --> 00:26:01,750 [செவிக்கு புலப்படாமல் மாணவர் பதில்] >> என்று என்ன? >> [மாணவர்] நீங்கள் அடிக்கடி வளர இல்லை. 434 00:26:01,750 --> 00:26:03,300 சரியாக. நீங்கள் அடிக்கடி வளர இல்லை. 435 00:26:03,300 --> 00:26:05,510 இந்த நீங்கள் மட்டும் என்ன ஆகும், இங்கே உங்கள் சவால் இழப்பு 436 00:26:05,510 --> 00:26:10,850 யோசனை அது மெதுவாக ஏனெனில் நீங்கள் realloc நிறைய அழைக்க வேண்டாம் என்று இருப்பது. 437 00:26:10,850 --> 00:26:12,910 நீங்கள், நினைவகத்தை இயக்க அமைப்பு ask எந்த நேரம் 438 00:26:12,910 --> 00:26:16,990 நீங்கள் விரைவில் ஒரு எதிர்கால பிரச்சனை தொகுப்பில் பார்க்கலாம், அது சில நேரம் எடுத்து முனைகிறது. 439 00:26:16,990 --> 00:26:20,010 அதனால் சில இடங்களில் வீணாக்குகிறாய் கூட, நேரம் என்று அளவு குறைத்தல், 440 00:26:20,010 --> 00:26:21,900 ஒரு நல்ல விஷயம் இருக்கிறது. 441 00:26:21,900 --> 00:26:24,060 >> ஆனால் நாம் இங்கு GetString இறுதி பகுதி வழியாக படிக்க வேண்டும் - 442 00:26:24,060 --> 00:26:27,950 மீண்டும் இங்கே ஒவ்வொரு வரியை புரிந்து இன்று மிகவும் முக்கியம் இல்லை - 443 00:26:27,950 --> 00:26:30,530 அது இறுதியில் மீண்டும் malloc அழைக்கும் அறிவிப்பு 444 00:26:30,530 --> 00:26:33,880 இது சரம் செய்ய வேண்டும் என அது பல பைட்டுகள் போலவே ஒதுக்கீடு 445 00:26:33,880 --> 00:26:38,060 பின்னர் இலவச அதிகமான பெரிய இடையக அழைத்து தூக்கி எறியும் 446 00:26:38,060 --> 00:26:40,080 இது உண்மையில் பல முறை இரு மடங்காக இருந்தது. 447 00:26:40,080 --> 00:26:42,730 எனவே குறுகிய காலத்தில், அந்த GetString அனைத்து இந்த நேரம் உழைக்கும் வருகிறது எப்படி. 448 00:26:42,730 --> 00:26:47,060 அனைத்து இது, மீண்டும், மீண்டும், மீண்டும் ஒரு நேரத்தில் ஒரு பாத்திரம் வாசிக்க 449 00:26:47,060 --> 00:26:50,750 மற்றும் சில கூடுதல் நினைவகம் தேவை ஒவ்வொரு முறையும், அது இயங்கு கேட்கும் 450 00:26:50,750 --> 00:26:53,670 realloc அழைப்பு விடுத்தார். 451 00:26:53,670 --> 00:26:57,890 >> எந்த கேள்விகள்? எல்லாம் சரி. 452 00:26:57,890 --> 00:26:59,270 >> ஒரு தாக்குதல். 453 00:26:59,270 --> 00:27:04,060 , இப்போது நாம் சுட்டிகள் புரிந்துகொள்ள அல்லது குறைந்தபட்சம் சுட்டிகள் அதிகரித்தது தெரிந்திருந்தால் 454 00:27:04,060 --> 00:27:06,700 உலகம் முழுவதும் விழுந்துவிடும் தொடங்குகிறது எப்படி என்று பார்ப்போம் 455 00:27:06,700 --> 00:27:10,030 நீங்கள் மிகவும் adversarial செய்த எதிராக பாதுகாக்க என்றால், 456 00:27:10,030 --> 00:27:11,850 உங்கள் அமைப்பில் ஹேக் முயற்சி நபர்களை, 457 00:27:11,850 --> 00:27:16,890 சில பதிவு குறியீடு சுற்றிவளைக்கும் உங்கள் மென்பொருள் திருட முயற்சி மக்கள் 458 00:27:16,890 --> 00:27:19,090 அவர்கள் இல்லையென்றால் இன்னும் தட்டச்சு செய்ய வேண்டும் என்று 459 00:27:19,090 --> 00:27:22,990 >> கீழே உள்ள முக்கிய செயல்பாடு என்று மட்டும் சி குறியீடு உள்ளது, இங்கு இந்த உதாரணம் பாருங்கள் 460 00:27:22,990 --> 00:27:26,380 என்று ஒரு செயல்பாடு foo அழைப்பு விடுத்துள்ளது. என்ன இது foo செய்ய போகிறது? 461 00:27:26,380 --> 00:27:29,680 [மாணவர்] ஒரு ஒற்றை வாதம். >> [Malan] ஒரு ஒற்றை வாதம். 462 00:27:29,680 --> 00:27:33,450 எனவே argv [1], இது பயனர் கட்டளை வரியில் தட்டச்சு முதல் வார்த்தை பொருள் 463 00:27:33,450 --> 00:27:36,360 a.out அல்லது அதை பிறகு திட்டம் என்று அழைக்கப்படுகிறது. 464 00:27:36,360 --> 00:27:41,680 மேலே foo என்பது ஒரு கரி * எடுத்து மிகவும். ஆனால் எரிப்பதை * தான் என்ன? >> [மாணவர்] ஒரு சரம். 465 00:27:41,680 --> 00:27:43,350 [Malan] ஒரு சரம், புதிய எதுவும் இங்கு இல்லை அதனால். 466 00:27:43,350 --> 00:27:45,420 அந்த சரம் தன்னிச்சையாக பார் என்று. 467 00:27:45,420 --> 00:27:51,430 இங்கே இந்த வரிசையில், கரி கேட்ச் [12]; அரை தொழில்நுட்ப ஆங்கிலம் வகையான இல், இந்த வரி என்ன செய்கிறார்? 468 00:27:51,430 --> 00:27:55,220 ஒரு [மாணவர்] ஒரு வரிசை - பல >> அணி? >> [மாணவர்] எழுத்துக்கள். >> எழுத்துக்கள். 469 00:27:55,220 --> 00:27:58,870 எனக்கு 12 எழுத்துக்கள் ஒரு வரிசை கொடுக்க. எனவே நாம் இந்த இடையக கூப்பிடுகிறேன். 470 00:27:58,870 --> 00:28:02,920 இது தொழில்நுட்ப கேட்ச் என்று, ஆனால் நிரலாக்க ஒரு இடையக ஒரு இடத்தில் ஒரு கூட்டத்தை பொருள் 471 00:28:02,920 --> 00:28:04,800 நீங்கள் சில விஷயங்களை உள்ளே போட முடியும் 472 00:28:04,800 --> 00:28:07,940 பின்னர் இறுதியாக, memcpy நாம் பயன்படுத்தும், ஆனால் ஒருவேளை நீங்கள் அதை என்ன யூகிக்க முடியும். 473 00:28:07,940 --> 00:28:10,480 அதை நினைவு நகலெடுக்கிறது. அது என்ன? 474 00:28:10,480 --> 00:28:19,270 அதை வெளிப்படையாக கேட்ச் நுழைந்து, அதன் உள்ளீடு, பட்டியில் நகலெடுக்கிறது ஆனால் மட்டுமே பட்டியில் நீளம். 475 00:28:19,270 --> 00:28:24,930 ஆனால் இங்கே ஒரு பிழை உள்ளது. >> [மாணவர் நீங்கள் sizeof தன்மை வேண்டும். சரி >>. 476 00:28:24,930 --> 00:28:30,860 தொழில்நுட்ப, நாம் உண்மையில் strlen செய்ய (பார்) * sizeof (கரி)). வேண்டும் அது சரியானது. 477 00:28:30,860 --> 00:28:33,930 ஆனால் இங்கே மிக மோசமான நிலையில், அது அந்த that's நாம் கருதி கொள்வோம் - 478 00:28:33,930 --> 00:28:35,950 சரி. பின்னர் இரண்டு பிழைகள் உள்ளன. 479 00:28:35,950 --> 00:28:39,160 எனவே sizeof (கரி)); 480 00:28:39,160 --> 00:28:41,290 இந்த ஒரு சிறிய பரந்த செய்யலாம். 481 00:28:41,290 --> 00:28:44,910 எனவே இப்போது என்ன இது ஒரு பிழை, இன்னும்? >> [செவிக்கு புலப்படாமல் மாணவர் பதில்] 482 00:28:44,910 --> 00:28:46,990 என்ன சோதனை? >> [மாணவர்] NULL சரிபார்க்கவும். 483 00:28:46,990 --> 00:28:50,270 கெட்ட விஷயங்கள் நடக்கும் ஏனென்றால் நாம் பொதுவாக NULL சரிபார்ப்பு 484 00:28:50,270 --> 00:28:53,200 நீங்கள், அங்கே கூடும் என்பதால் உங்கள் சுட்டிக்காட்டி NULL போது 485 00:28:53,200 --> 00:28:57,630 மற்றும் நீ நட்சத்திரம் ஆபரேட்டர் அதை dereferencing மூலம் பூஜ்ய போகிறது. 486 00:28:57,630 --> 00:29:01,050 எனவே நல்லது. நாம் வேறு என்ன செய்கிறீர்கள்? தர்க்கரீதியாக, ஒரு குறைபாடு கூட இங்கே இல்லை. 487 00:29:01,050 --> 00:29:04,450 [மாணவர்] argc> = 2 என்று பாருங்கள். 488 00:29:04,450 --> 00:29:10,550 Argc> = 2 இருந்தால், அதனால் சோதனை. சரி, இந்த திட்டம் மூன்று பிழைகள் இங்கே இல்லை, அதனால். 489 00:29:10,550 --> 00:29:16,630 பயனர் உண்மையில் argv கொண்டு எதையும் தட்டச்சு நாம் இப்போது பரிசீலித்துக்கொண்டிருக்கிறோம் [1]. நல்ல. 490 00:29:16,630 --> 00:29:20,950 எனவே மூன்றாவது பிழை என்ன? Yeah. >> [மாணவர்] சி போதுமான பெரிய இருக்கலாம். 491 00:29:20,950 --> 00:29:23,320 நல்ல. நாம் ஒரு காட்சியில் சோதிக்கப்பட்டது. 492 00:29:23,320 --> 00:29:29,520 நாம் உட்குறிப்பாக பட்டியில் நீளம் அதிகமாக விட அதிகமாக நினைவகம் நகலெடுக்க வேண்டாம் சோதிக்கப்பட்டது. 493 00:29:29,520 --> 00:29:32,510 எனவே சரம் என்றால் தட்டச்சு பயனர் 10 எழுத்துக்கள் நீளமாக உள்ளது, 494 00:29:32,510 --> 00:29:36,020 இந்த 10 எழுத்துக்களை நகலெடுக்க சொல்கிறார்கள். மற்றும் நல்லது. 495 00:29:36,020 --> 00:29:39,940 ஆனால் பயனர் 20-தன்மை வார்த்தை போன்ற வரியில் ஒரு வார்த்தை என்ன தட்டச்சு செய்வது? 496 00:29:39,940 --> 00:29:44,900 இந்த என்ன என்ற பட்டியில் இருந்து நகல் 20 எழுத்துக்கள் சொல்கிறார்? 497 00:29:44,900 --> 00:29:49,750 மற்றபடி எங்கள் இடையக எனப்படும் சி,, இதில் நீங்கள் தரவு எழுதினார் பொருள் 498 00:29:49,750 --> 00:29:52,540 நீங்கள் சொந்த வேண்டாம் என்று 8 பைட் இடங்களுக்கு, 499 00:29:52,540 --> 00:29:54,870 நீங்கள் அவர்களுக்கு ஒதுக்கப்பட்ட இல்லை என்ற அர்த்தத்தில் அவர்கள் சொந்தமாக இல்லை. 500 00:29:54,870 --> 00:30:00,370 இந்த பொதுவாக இடையக வழிதல் தாக்குதல் அல்லது இடையகம் மிஞ்சு தாக்குதல் என்று என்ன இருக்கிறது. 501 00:30:00,370 --> 00:30:05,580 அது பொருளில் ஒரு தாக்குதல் என்று இருந்தால், பயனர் அல்லது உங்கள் செயல்பாடு என்று அந்த திட்டம் 502 00:30:05,580 --> 00:30:10,490 உண்மையில் அடுத்து என்ன நடக்கும், தவறாக இதை உண்மையில் மிக மோசமான இருக்க முடியும். 503 00:30:10,490 --> 00:30:12,450 >> எனவே இந்த படத்தை பாருங்கள் நாம். 504 00:30:12,450 --> 00:30:16,060 இந்த படம் நினைவகம் உங்கள் ஸ்டேக் பிரதிபலிக்கிறது. 505 00:30:16,060 --> 00:30:19,580 நீங்கள் ஒரு செயல்பாடு என்று ஒவ்வொரு முறையும் நீங்கள் ஸ்டேக் இந்த சிறிய சட்ட கிடைக்கும் என்று நினைவு 506 00:30:19,580 --> 00:30:21,520 பின்னர் மற்றொரு பின்னர் மற்றொரு மற்றொரு. 507 00:30:21,520 --> 00:30:24,300 மற்றும் இதுவரை, நாம் மட்டும் என்ன இருக்கிறது இந்த செவ்வகங்கள் என்று எண்ணக்கூடிய 508 00:30:24,300 --> 00:30:26,290 குழு அல்லது இங்கே திரையில் ஒன்று. 509 00:30:26,290 --> 00:30:30,580 ஆனால் நாம் ஒரு செயல்பாடு foo அழைக்க போது அந்த செவ்வக ஒரு அன்று பெரிதாக்க என்றால், 510 00:30:30,580 --> 00:30:35,880 இன்னும் அந்த செவ்வகத்தின் என்று சட்டம் ஸ்டேக் உள்ளே இருக்கும் என்று மாறும் 511 00:30:35,880 --> 00:30:40,060 விட நாம் இடமாற்று பற்றி போல் தான் x மற்றும் y மற்றும் a மற்றும் b. 512 00:30:40,060 --> 00:30:44,410 சில குறைந்த அளவிலான விவரங்களை திரும்ப முகவரி அவர்கள் மத்தியில், அங்கு அவுட் சுழல்கிறது. 513 00:30:44,410 --> 00:30:49,550 முக்கிய foo அழைத்தால், அது மாறிவிடும், முக்கிய foo தெரிவிக்க வேண்டும் 514 00:30:49,550 --> 00:30:53,520 என்ன முக்கிய முகவரி கணினியின் நினைவகம் உள்ளது 515 00:30:53,520 --> 00:30:57,770 இல்லையெனில், ஏனெனில், விரைவில் foo என, இங்கே இந்த வழக்கில் என, இயக்கும் செய்யப்படுகிறது 516 00:30:57,770 --> 00:31:00,830 ஒரு முறை நீங்கள், foo இறுதியில் இந்த மூடிய சுருள் பிரேஸ் அடைய 517 00:31:00,830 --> 00:31:05,310 நிரல் கட்டுப்பாட்டை செல்லவேண்டும் அமைந்துள்ள எப்படி கர்மம் foo தெரியும்? 518 00:31:05,310 --> 00:31:08,970 அந்த கேள்விக்கு பதில் இங்கே இந்த சிவப்பு செவ்வகம் உள்ளது என்று கூறினார். 519 00:31:08,970 --> 00:31:12,670 இந்த ஒரு சுட்டிக்காட்டி பிரதிபலிக்கிறது, அதை தற்காலிகமாக சேமிக்க கணினி வரை தான் 520 00:31:12,670 --> 00:31:17,030 என்று அழைக்கப்படும் ஸ்டேக்கில் அதனால் விரைவில் foo என முக்கிய முகவரி இயக்கும் செய்யப்படுகிறது, 521 00:31:17,030 --> 00:31:21,120 கணினி அங்கு செல்ல முக்கிய என்ன வரி தெரியும். 522 00:31:21,120 --> 00:31:23,940 சேமித்த சட்டத்தை சுட்டிக்காட்டி இந்த ஒத்த தொடர்புடையது. 523 00:31:23,940 --> 00:31:26,310 இங்கே எரிப்பதை * பட்டியில் என்ன பிரதிபலிக்கிறது? 524 00:31:26,310 --> 00:31:31,350 இப்போது இந்த நீல பிரிவில் இங்கே foo சட்டத்தில் உள்ளது. பார் என்ன? 525 00:31:31,570 --> 00:31:35,010 பட்டியை மட்டும் foo செயல்பாடு வாதம் ஆகும். 526 00:31:35,010 --> 00:31:37,500 எனவே இப்போது நாம் நன்கு படம் வகையான திரும்பி இருக்கிறது. 527 00:31:37,500 --> 00:31:39,850 திரையில் அதிக பொருள் மற்றும் திசைதிருப்பல்கள், அங்கு 528 00:31:39,850 --> 00:31:43,380 ஆனால் இந்த ஒளி நீல பிரிவில் தான் நாம் சாக்போர்டு மீது வரைந்து கொண்டிருக்கிறேன் என்ன 529 00:31:43,380 --> 00:31:45,790 இடமாற்று போன்ற ஏதாவது. அந்த foo ஒரு சட்டம் உள்ளது. 530 00:31:45,790 --> 00:31:51,490 அது மட்டும் தான் இப்போது இந்த அளவுரு இது, பட்டியில் உள்ளது. 531 00:31:51,490 --> 00:31:55,220 ஆனால் வேறு என்ன இங்கே இந்த குறியீடு படி ஸ்டாக் இருக்க வேண்டும்? 532 00:31:55,220 --> 00:31:57,760 [மாணவர்] எரிப்பதை கேட்ச் [12]. >> [Malan] எரிப்பதை கேட்ச் [12]. 533 00:31:57,760 --> 00:32:02,810 நாங்கள், கேட்ச் எனப்படும் ஒரு மாறுபடும் ஒதுக்கப்பட்ட நினைவகத்தை 12 சதுரங்கள் பார்க்க வேண்டும் 534 00:32:02,810 --> 00:32:04,970 உண்மையில் நாம் திரையில் என்று இல்லை. 535 00:32:04,970 --> 00:32:08,480 மிக சிறந்த உள்ளது கேட்ச் [0] இந்த வரைபடத்தில், பின்னர் ஆசிரியர் 536 00:32:08,480 --> 00:32:11,850 சதுரங்கள் அனைத்து வரைய கவலை, ஆனால் அங்கு 12 உண்மையில் இல்லை 537 00:32:11,850 --> 00:32:16,590 ஏனெனில் நீங்கள் கீழே வலது பார் என்றால், கேட்ச் [11] நீங்கள் 0 இருந்து கணக்கில் இருந்து 12 அத்தகைய பைட் ஆகும். 538 00:32:16,590 --> 00:32:18,400 ஆனால் இங்கே பிரச்சினை. 539 00:32:18,400 --> 00:32:22,390 கேட்ச் எந்த திசையில் வளர்ந்து வருகிறது? 540 00:32:22,390 --> 00:32:27,080 வரிசை அது மேலே தொடங்கி கீழே வளரும் என்றால் மேலிருந்து ஒரு. 541 00:32:27,080 --> 00:32:30,110 நாம் இங்கே நம்மை மிகவும் விமான விட்டு போல் இது இல்லை. 542 00:32:30,110 --> 00:32:32,090 நாம் வகையான, ஒரு மூலையில் நம்மை வர்ணம் பூசப்பட்ட 543 00:32:32,090 --> 00:32:36,940 அந்த கேட்ச் [11] சேமிக்கப்பட்ட சட்டத்தை சுட்டிக்காட்டி எதிராக உரிமை வரை இது பார், எதிராக உரிமை உள்ளது, 544 00:32:36,940 --> 00:32:39,960 இது திரும்ப முகவரி எதிராக உரிமை உள்ளது. எந்த அறையில் இல்லை. 545 00:32:39,960 --> 00:32:42,810 நீங்கள் திருகு என்றால் உட்குறிப்பு பிறகு என்ன 546 00:32:42,810 --> 00:32:46,500 நீங்கள் ஒரு 12 பைட் தாங்கல் இந்த 20 பைட்டுகள் படிக்க முயற்சி? 547 00:32:46,500 --> 00:32:50,060 எங்கே அந்த 8 கூடுதல் பைட்டுகள் செல்கிறோம்? >> [மாணவர்] உள்ளே - 548 00:32:50,060 --> 00:32:53,200 எல்லாவற்றையும் உள்ளே, அவற்றில் சில முக்கியமான சூப்பர் உள்ளது. 549 00:32:53,200 --> 00:32:57,260 மிக முக்கியமான விஷயம், திறன்,,, அங்கு மீண்டும் முகவரி சிவப்பு பெட்டி 550 00:32:57,260 --> 00:33:03,560 ஏனெனில், நீங்கள் தற்செயலாக அல்லது adversarially அந்த 4 பைட்டுகள் மேலெழுதும் நினைக்கிறேன் 551 00:33:03,560 --> 00:33:07,260 குப்பை, ஆனால் பல இல்லை என்று சுட்டிக்காட்டி முகவரி, 552 00:33:07,260 --> 00:33:09,810 அந்த நினைவகத்தில் ஒரு உண்மையான முகவரி பிரதிநிதித்துவப்படுத்துவதாக நடக்கிறது. 553 00:33:09,810 --> 00:33:13,880 தர்க்கரீதியாக உட்குறிப்பு, என்ன? >> [மாணவர்] செயல்பாடு வேறு இடத்திற்கு திரும்ப வேண்டும். 554 00:33:13,880 --> 00:33:15,250 சரியாக. 555 00:33:15,250 --> 00:33:19,170 Foo வருமானம் மற்றும் வெற்றி சுருள் பிரேஸ் என்று, திட்டத்தை தொடர போகும் போது 556 00:33:19,170 --> 00:33:25,060 முக்கிய திரும்ப முடியாது, அது அந்த சிவப்பு பெட்டியில் என்ன முகவரியை திரும்ப நடக்கிறது. 557 00:33:25,060 --> 00:33:28,600 >> சுற்றிவளைக்கும் மென்பொருள் பதிவு வழக்கில், 558 00:33:28,600 --> 00:33:32,260 திரும்பி வரும் என்று முகவரி பொதுவாக அழைக்கப்படும் விடும் என்று செயல்பாடு என்ன என்றால் 559 00:33:32,260 --> 00:33:35,690 நீங்கள் மென்பொருள் ஊதியம் மற்றும் உங்கள் பதிவு குறியீடு உள்ளிட்ட? பிறகு 560 00:33:35,690 --> 00:33:39,870 நீங்கள் இங்கே போவதில்லை என்ற தந்திரம் கணினியின் வரிசைப்படுத்த ஆனால் அதற்கு பதிலாக இங்கே சென்று முடியும். 561 00:33:39,870 --> 00:33:45,100 நீங்கள் உண்மையில் புத்திசாலி என்றால் அல்லது, ஒரு விரோதி உண்மையில், உதாரணமாக, விசைப்பலகை இல் தட்டச்சு 562 00:33:45,100 --> 00:33:50,690 ஒரு உண்மையான வார்த்தை இல்லை 20 எழுத்துகள், ஆனால் அவர் உண்மையில் வகையான வேண்டும் 563 00:33:50,690 --> 00:33:52,770 குறியீடு பிரதிநிதித்துவப்படுத்தும் சில கதாபாத்திரங்கள். 564 00:33:52,770 --> 00:33:55,320 இது சி குறியீடு போகிறேன் இல்லை, அது உண்மையில் எழுத்துக்கள் இருக்க போகிறது 565 00:33:55,320 --> 00:33:59,290 அந்த 0 க்கள் மற்றும் 1 வி பைனரி இயந்திர குறியீடு, பிரதிநிதித்துவம். 566 00:33:59,290 --> 00:34:01,290 ஆனால், அவர்கள் அதை செய்ய போதுமான வீழ்வது தான் நினைக்கிறேன் 567 00:34:01,290 --> 00:34:06,500 எப்படியோ அடிப்படையில் தொகுக்கப்பட்ட குறியீடு என்று GetString வரியில் ஏதோ ஒட்டலாம் வேண்டும், 568 00:34:06,500 --> 00:34:09,980 கடந்த 4 பைட்டுகள் என்று திரும்ப முகவரியை மேலெழுதும். 569 00:34:09,980 --> 00:34:13,360 அந்த உள்ளீடு என்ன முகவரி என்ன? 570 00:34:13,360 --> 00:34:18,630 உண்மையில் இந்த சிவப்பு செவ்வகம் இடையக முதல் பைட் முகவரி உள்ள சேமிக்கிறது. 571 00:34:18,630 --> 00:34:23,070 எனவே, நீங்கள் உண்மையில் வீழ்வது இருக்க வேண்டும், மற்றும் இந்த அங்கே மோசமான மக்கள் சோதனை மற்றும் பிழை நிறைய இருக்கிறது 572 00:34:23,070 --> 00:34:25,639 ஆனால் இந்த இடை எப்படி பெரிய கண்டுபிடிக்க முடியாது 573 00:34:25,639 --> 00:34:28,820 உள்ளீடு கடந்த சில பைட்டுகள் நீங்கள் திட்டம் வழங்கும் போன்ற 574 00:34:28,820 --> 00:34:33,540 உங்கள் இடையகம் தொடக்கத்தில் முகவரி சமமாக இருக்கும் நடக்கும், நீங்கள் இதை செய்ய முடியும். 575 00:34:33,540 --> 00:34:39,320 நாம் சாதாரணமாக ஹலோ மற்றும் \ 0 சொன்னால், அந்த இடைப்பட்ட ல் முடிவடைகிறது என்ன. 576 00:34:39,320 --> 00:34:44,420 ஆனால் நாம் இன்னும் வீழ்வது இருக்கிறோம் நாம் பொதுவாக தாக்குதல் குறியீடு அழைக்கிறேன் என்ன என்று இடையக நிரப்ப வேண்டும் - 577 00:34:44,420 --> 00:34:48,860 AAA, தாக்குதல், தாக்குதல், தாக்குதல் - இந்த மோசமான ஒன்று என்று ஒன்று உள்ளது, 578 00:34:48,860 --> 00:34:51,820 நீங்கள் உண்மையில் புத்திசாலி என்றால் என்ன, நீங்கள் இதை செய்ய வேண்டும். 579 00:34:51,820 --> 00:34:58,610 80, C0, 35, 08 - இங்கே சிவப்பு பெட்டியில் எண்கள் வரிசை ஆகும். 580 00:34:58,610 --> 00:35:01,610 என்று இங்கே தான் என்று பல பொருந்துகிறதா என்று பாருங்கள். 581 00:35:01,610 --> 00:35:04,430 இது தலைகீழ் வரிசையில், ஆனால் சில நேரம் அதிக. 582 00:35:04,430 --> 00:35:08,140 இந்த பதிலுக்கு முகவரியை வேண்டுமென்றே மாற்றங்கள் செய்யப்பட்டுள்ளது என்று அறிவிப்பு 583 00:35:08,140 --> 00:35:12,020 இங்கே முகவரியை வரை சமமாக, முக்கிய இல்லை முகவரியை. 584 00:35:12,020 --> 00:35:17,500 மோசமான பையன் சூப்பர் ஸ்மார்ட் இருக்கும் என்றால், அவர் அந்த தாக்குதல் குறியீடு சேர்க்க போகிறார் 585 00:35:17,500 --> 00:35:20,930 பயனர் கோப்புகளை அழிக்க அல்லது கடவுச்சொற்களை நகலெடுக்க ஒன்று போல் 586 00:35:20,930 --> 00:35:24,680 அல்லது நான் உள்நுழைய முடியும் என்று ஒரு பயனர் கணக்கு தொடக்கம் - எதுவும் இல்லை. 587 00:35:24,680 --> 00:35:26,950 >> இந்த ஆபத்து மற்றும் சி சக்தி ஆகும் 588 00:35:26,950 --> 00:35:29,840 நீங்கள் சுட்டிகள் வழியாக நினைவகம் ஏனெனில் 589 00:35:29,840 --> 00:35:32,520 நீங்கள் எனவே, ஒரு கணினியின் நினைவகத்தை நீங்கள் விரும்பும் எதையும் எழுத முடியும் 590 00:35:32,520 --> 00:35:35,080 நீங்கள் ஒரு கணினி நீங்கள் விரும்பும் எதையும் செய்ய முடியும் 591 00:35:35,080 --> 00:35:39,550 வெறுமனே அதை தனது சொந்த நினைவக இடத்தில் குதித்தால். 592 00:35:39,550 --> 00:35:44,650 மற்றும் இந்த நாள் பல திட்டங்கள் மற்றும் பல வலைத்தளங்களிலும் சமரசம் என்று 593 00:35:44,650 --> 00:35:46,200 இந்த சாதகமாக பயன்படுத்தி, மக்கள் கீழே கொதிக்க. 594 00:35:46,200 --> 00:35:50,760 இந்த ஒரு சூப்பர் அதிநவீன தாக்குதல் போல இருக்கலாம், ஆனால் அது எப்போதும் வழி தொடங்க முடியாது. 595 00:35:50,760 --> 00:35:53,560 உண்மையில், என்ன கெட்ட மக்கள் பொதுவாக செய்வேன் என்று 596 00:35:53,560 --> 00:35:58,200 அது ஒரு கட்டளை வரியில் ஒரு திட்டம் அல்லது ஒரு GUI திட்டம் அல்லது ஒரு இணையதளத்தில், என்று 597 00:35:58,200 --> 00:35:59,940 நீங்கள் அர்தமற்று வழங்கும் தொடங்கும். 598 00:35:59,940 --> 00:36:03,980 நீங்கள், தேடல் புலம் மற்றும் வெற்றி உள்ளிடவும் ஒரு பெரிய வார்த்தை தட்டச்சு 599 00:36:03,980 --> 00:36:05,780 நீங்கள் இணைய விபத்துக்குள்ளான என்பதை பொறுத்திருந்து 600 00:36:05,780 --> 00:36:09,990 அல்லது நீங்கள் நிரல் சில பிழை செய்தி ஏற்படுகிறது என்பதை பொறுத்திருந்து 601 00:36:09,990 --> 00:36:14,330 நீ மோசமான வீரர் என அதிர்ஷ்டம் பெற நீங்கள் சில வேடிக்கையான உள்ளீடு வழங்க காரணம் 602 00:36:14,330 --> 00:36:18,980 ப்ரோக்ராமர் உங்கள் கெட்ட நடத்தை எதிர்பார்க்கலாம் இல்லை என்று திட்டம், விபத்துக்குள்ளான அந்த 603 00:36:18,980 --> 00:36:23,630 இது, உங்களுக்கு போதுமான முயற்சி, போதுமான சோதனை மற்றும் பிழை ஒருவேளை முடியும் 604 00:36:23,630 --> 00:36:26,650 ஒரு துல்லியமான தாக்குதலை முன்னெடுக்க எப்படி கண்டுபிடிக்க. 605 00:36:26,650 --> 00:36:31,410 பாதுகாப்பு மிகவும் அதிகமாக ஒரு பகுதியாக தான் முற்றிலும் இந்த தாக்குதல்களை தவிர்த்து 606 00:36:31,410 --> 00:36:34,100 ஆனால் அவர்கள் கண்டறிதல் மற்றும் உண்மையில் பதிவுகள் பார்க்க 607 00:36:34,100 --> 00:36:36,780 மற்றும் வேடிக்கையான உள்ளீடுகளை உங்கள் இணைய தட்டச்சு மக்கள் என்ன பார்த்து, 608 00:36:36,780 --> 00:36:38,960 என்ன தேடல் உங்கள் இணையத்தளத்தில் மக்கள் தட்டச்சு 609 00:36:38,960 --> 00:36:42,870 சில தடுப்பு நிரம்பி வழிகிறது என்ற நம்பிக்கையில். 610 00:36:42,870 --> 00:36:45,500 என்ன சாதாரண அடிப்படைகளை இந்த அனைத்து கொதித்தது கீழே ஒரு வரிசை தான் 611 00:36:45,500 --> 00:36:49,080 என்ன அது நினைவகத்தை ஒதுக்க மற்றும் பயன்படுத்த அர்த்தம். 612 00:36:49,080 --> 00:36:51,710 >> என்று பின்னர் தான் இது தொடர்பான. 613 00:36:51,710 --> 00:36:54,280 அது தான் மீண்டும் ஒரு வன் உள்ளே ஏறெடுத்தும் பார்க்க வேண்டும். 614 00:36:54,280 --> 00:36:58,440 நீங்கள் முன்பு ஒரு வாரம் அல்லது இரண்டு இருந்து நினைவுகூர என்று நீங்கள் உங்கள் மறுசுழற்சி தொட்டிக்கு அல்லது குப்பை முடியும் கோப்புகளை இழுத்து, போது 615 00:36:58,440 --> 00:37:03,710 என்ன நடக்கிறது? >> [மாணவர்] எதுவும். >> ஒன்றுமேயில்லை, சரியான? 616 00:37:03,710 --> 00:37:05,740 நீங்கள் வட்டு குறைந்த ரன், இறுதியில் என்றால் 617 00:37:05,740 --> 00:37:08,190 விண்டோஸ் அல்லது மேக் OS நீங்கள் கோப்புகளை நீக்கும் ஆரம்பிக்கும். 618 00:37:08,190 --> 00:37:10,390 நீங்கள் அங்கு ஏதாவது இழுத்து ஆனால், அனைத்து பாதுகாப்பு இல்லை. 619 00:37:10,390 --> 00:37:13,800 உங்கள் ரூம்மேட் அல்லது நண்பர் அல்லது குடும்ப உறுப்பினர் செய்ய உள்ளது இரட்டை கிளிக் செய்து, voila, 620 00:37:13,800 --> 00:37:16,310 நீங்கள் நீக்க முயற்சி என்று அனைத்து மேலோட்டமான கோப்புகள் இல்லை. 621 00:37:16,310 --> 00:37:19,590 நமக்கு மிகவும் குறைந்த பட்சம் நீங்கள் சரியான கிளிக் அல்லது கிளிக் கண்ட்ரோல் வேண்டும் என்று 622 00:37:19,590 --> 00:37:22,310 இப்படி குப்பை அல்லது ஏதாவது காலியாக. 623 00:37:22,310 --> 00:37:25,000 ஆனால் பிறகு மிகவும் தந்திரம் செய்யாமல் 624 00:37:25,000 --> 00:37:28,010 உங்கள் நிலைவட்டில் ஒரு கோப்பு போது என்ன நடக்கிறது என்பதால் 625 00:37:28,010 --> 00:37:32,770 , சில வார்த்தை ஆவணம் அல்லது சில JPEG பிரதிபலிக்கிறது, இந்த உங்கள் நிலைவட்டில் பிரதிபலிக்கிறது 626 00:37:32,770 --> 00:37:35,350 மற்றும் நாம் இங்கே இந்த சிம்பு, அந்த கோப்பு பிரதிபலிக்கிறது என்று 627 00:37:35,350 --> 00:37:38,390 அது 0 க்கள் மற்றும் 1 வி ஒரு மொத்தமாக கொண்ட. 628 00:37:38,390 --> 00:37:42,470 என்ன தான் குப்பை கோப்பு இழுத்து போது நடக்கும் அல்லது பின் மறுசுழற்சி செய்யலாம் 629 00:37:42,470 --> 00:37:48,020 ஆனால் அதை காலி? எதுவும் வகையான. 630 00:37:48,020 --> 00:37:49,640 அது இப்போது முற்றிலும் எதுவும் இல்லை. 631 00:37:49,640 --> 00:37:54,290 ஒரு சிறிய ஒன்று இந்த அட்டவணை வடிவில் நடக்கிறது என்பதால் இப்போது அது இல்லை. 632 00:37:54,290 --> 00:37:58,370 ஒரு கணினியின் நினைவகம் உள்ளே தரவுத்தள அல்லது அட்டவணையில் சில வகையான இல்லை 633 00:37:58,370 --> 00:38:03,850 அந்த அடிப்படையில், கோப்புகளை ஒரு பத்தியில் 'பெயர்கள் மற்றும் கோப்புகளை ஒரு பத்தியில்' இடம் உள்ளது 634 00:38:03,850 --> 00:38:07,720 இந்த இடம் 123, ஒரு சீரற்ற எண் இருக்கும். 635 00:38:07,720 --> 00:38:14,560 நாம் x.jpeg மற்றும் இடம் 123 போன்ற ஏதாவது இருக்கலாம். 636 00:38:14,560 --> 00:38:18,800 நீங்கள் உண்மையில் உங்கள் குப்பையை காலி போது என்ன நடக்கும்? 637 00:38:18,800 --> 00:38:20,330 விட்டு செல்லும். 638 00:38:20,330 --> 00:38:23,610 ஆனால் என்ன விட்டு போக முடியாது 0 க்கள் மற்றும் 1 வி ஆகும். 639 00:38:23,610 --> 00:38:26,270 >> எனவே pset4 இணைப்பு பிறகு என்ன? 640 00:38:26,270 --> 00:38:31,240 நன்றாக, pset4 கொண்டு, நாங்கள் தவறுதலாக காம்பாக்ட் ஃபிளாஷ் அட்டை அழிக்கப்பட காரணம் 641 00:38:31,240 --> 00:38:35,750 கெட்ட இந்த புகைப்படங்கள் அனைத்தும் அல்லது அதை காரணம் என்று சிதைந்த ஆனது 642 00:38:35,750 --> 00:38:38,000 0 க்கள் மற்றும் 1 வி இன்னமும் இல்லை என்று அர்த்தம் இல்லை. 643 00:38:38,000 --> 00:38:40,410 ஏதோ ஊழல் நடந்தது ஏனெனில் அவர்களுக்கு ஒரு சில இழந்தது 644 00:38:40,410 --> 00:38:43,320 சில 0s 1 வி ஆனது மற்றும் 1 வி 0s ஆனது என்ற அர்த்தத்தில். 645 00:38:43,320 --> 00:38:47,240 தரமற்ற மென்பொருள் அல்லது குறைபாடுள்ள வன்பொருள் காரணமாக கெட்ட விஷயங்கள் நடக்கலாம். 646 00:38:47,240 --> 00:38:50,370 ஆனால் அந்த பிட்கள் பல, ஒருவேளை அவர்கள் கூட 100%, அங்கு இன்னும் இருக்கின்றன. 647 00:38:50,370 --> 00:38:55,050 இது JPEG1 தொடங்கினார் கணினி அல்லது கேமரா தெரியாது என்று மட்டும் தான் 648 00:38:55,050 --> 00:38:56,910 மற்றும் அங்கு JPEG2 தொடங்கியது. 649 00:38:56,910 --> 00:39:01,070 ஆனால் நீங்கள், ப்ரோக்ராமர், அந்த JPEG படங்கள் எங்கே ஆர்வலராகவும் ஒரு பிட் தெரியும் 650 00:39:01,070 --> 00:39:06,010 அல்லது அவர்கள் போல் நீங்கள் 0 க்கள் மற்றும் 1 வி மற்றும் சொல்ல JPEG, JPEG, ஆய்வு செய்யலாம் 651 00:39:06,010 --> 00:39:09,440 நீங்கள் அடிப்படையில் தான் ஒரு ஒரு நிரலை எழுத அல்லது போது சுழற்சி 652 00:39:09,440 --> 00:39:12,820 அந்த கோப்புகளை ஒவ்வொரு ஒரு குணமாகும். 653 00:39:12,820 --> 00:39:16,030 பாடம் பின்னர் பாதுகாப்பாக உங்கள் கோப்புகளை அழித்தலை தொடங்க உள்ளது 654 00:39:16,030 --> 00:39:18,340 நீங்கள் முற்றிலும் இதை தவிர்க்க விரும்பினால். ஆம். 655 00:39:18,340 --> 00:39:21,010 >> [மாணவர்] எப்படி உங்கள் கணினியில் நிதி 656 00:39:21,010 --> 00:39:23,550 நீங்கள் முன்பு இருந்ததை விட அதிக நினைவகம் என்று? 657 00:39:23,550 --> 00:39:27,820 நீங்கள் முன்பு இருந்ததை விட அதிக நினைவகம் வேண்டும் - >> [மாணவர்] மேலும் கிடைக்கும் நினைவகம். 658 00:39:27,820 --> 00:39:29,630 ஓ. கேள்வி நல்ல. 659 00:39:29,630 --> 00:39:32,360 ஏன் என்றால் குப்பையை காலியாக்கி பின்னர் உங்கள் கணினியில் நீங்கள் சொல்ல 660 00:39:32,360 --> 00:39:34,910 நீங்கள் முன்பு இருந்ததை விட அதிக காலியிடம் இல்லை என்று? 661 00:39:34,910 --> 00:39:36,770 சுருக்கமாக, இது பொய் காரணம். 662 00:39:36,770 --> 00:39:40,740 இப்போது நீங்கள் சொன்ன காரணம் இன்னும் தொழில்நுட்ப, மேலும் இடம் இல்லை 663 00:39:40,740 --> 00:39:43,680 அந்த கோப்பு முறை அங்கு நீங்கள் மற்ற பொருட்களை வைக்க முடியாது. 664 00:39:43,680 --> 00:39:45,450 ஆனால் அந்த, பிட்கள் போகிறீர்கள் என்று அர்த்தம் இல்லை 665 00:39:45,450 --> 00:39:48,590 அந்த துணுக்குகள், உதாரணமாக, அனைத்து 0s மாற்றப்பட்டது வருகின்றன அர்த்தம் இல்லை 666 00:39:48,590 --> 00:39:50,150 உங்கள் பாதுகாப்பு. 667 00:39:50,150 --> 00:39:54,640 எனவே இதற்கு மாறாக, நீங்கள் பாதுகாப்பாக கோப்புகளை அழிக்க அல்லது உடல் சாதனம் அழிக்க வேண்டும், 668 00:39:54,640 --> 00:39:57,300 என்று அந்த சுற்றி சில நேரங்களில் ஒரே வழி. 669 00:39:57,300 --> 00:40:02,020 >> ஏன் நாம் அந்த பகுதி பயங்கரமாக குறிப்பு வெளியே இல்லை, நாங்கள் திங்களன்று நீங்கள் காண்பீர்கள். 670 00:40:02,020 --> 00:40:07,000 [கரவொலி] 671 00:40:07,780 --> 00:40:10,000 >> [CS50.TV]