1 00:00:00,000 --> 00:00:01,000 [Powered by Google Translate] [பகுதி 6] [மேலும் வசதியான] 2 00:00:01,000 --> 00:00:04,000 [ராப் Bowden] [ஹார்வர்ட் பல்கலைக்கழகம்] 3 00:00:04,000 --> 00:00:09,000 [இந்த CS50 உள்ளது.] [CS50.TV] 4 00:00:09,000 --> 00:00:11,000 >> நாங்கள் கேள்விகள் நம் பிரிவுக்கு தலைமை முடியும். 5 00:00:11,000 --> 00:00:17,000 நான் முன்பு விண்வெளி URL ஐ அனுப்பினார். 6 00:00:17,000 --> 00:00:22,000 கேள்விகள் பிரிவு தொடக்கத்தில் சொல்ல- 7 00:00:22,000 --> 00:00:26,000 வெளிப்படையாக நான் ஒரு மிக எளிய கேள்வி unsick ஆகும் முற்றிலும் இல்லை 8 00:00:26,000 --> 00:00:28,000 Valgrind என்பது தான் என்ன? 9 00:00:28,000 --> 00:00:30,000 Valgrind என்ன செய்ய? 10 00:00:30,000 --> 00:00:34,000 யாராவது Valgrind என்ன கூற விரும்புகிறீர்கள்? 11 00:00:34,000 --> 00:00:36,000 [மாணவர்] காசோலைகள் நினைவு கசிவுகள். 12 00:00:36,000 --> 00:00:41,000 சரி, Valgrind ஒரு பொது நினைவக சரிபார்ப்பு ஆகும். 13 00:00:41,000 --> 00:00:44,000 நீங்கள் எந்த நினைவக கசிவை இருந்தால் அது, இறுதியில், நீங்கள் சொல்கிறது 14 00:00:44,000 --> 00:00:49,000 நீங்கள் விரும்பினால் நாம் ஏனெனில் அதை பயன்படுத்தி நீங்கள் என்ன பெரும்பாலும் 15 00:00:49,000 --> 00:00:54,000 பிரச்சனை தொகுப்பில் அல்லது நீங்கள் விரும்பினால் நன்றாக 16 00:00:54,000 --> 00:00:59,000 பெரிய பலகையில் செய்து, நீங்கள், எந்த நினைவக கசிவை வேண்டும் 17 00:00:59,000 --> 00:01:01,000 மேலும் இந்த வழக்கில், நீங்கள், நீங்கள் கண்டுபிடிக்க முடியவில்லை என்று ஒரு நினைவக கசிவு இல்லை 18 00:01:01,000 --> 00:01:04,000 நீங்கள் ஒரு கோப்பை திறக்க போதெல்லாம் அந்த நினைவில் 19 00:01:04,000 --> 00:01:07,000 நீங்கள் அதை மூட என்றால், ஒரு நினைவக கசிவு தான். 20 00:01:07,000 --> 00:01:10,000 >> நிறைய பேர் அவர்கள் பெறலாம் இல்லை என்று சில முனை தேடும் 21 00:01:10,000 --> 00:01:15,000 போது உண்மையில், அவர்கள் மிகவும் முதல் படியில் அகராதி மூட முடியவில்லை. 22 00:01:15,000 --> 00:01:19,000 இது, நீங்கள் எந்த தவறான இருந்தால் படிக்கும் நீங்கள் சொல்கிறது அல்லது எழுதுகிறார் 23 00:01:19,000 --> 00:01:22,000 நீங்கள் முயற்சி மற்றும் ஒரு மதிப்பு அமைக்க இருந்தால் பொருள் 24 00:01:22,000 --> 00:01:26,000 அந்த குவியல் இறுதியில் அப்பால் மற்றும் அதை நொடி தவறு நடக்க கூடாது 25 00:01:26,000 --> 00:01:30,000 ஆனால் Valgrind, நீங்கள் உண்மையில் அங்கு எழுத கூடாது, அது பிடிக்கும் 26 00:01:30,000 --> 00:01:33,000 அதனால் நீங்கள் கண்டிப்பாக அந்த அல்லது எந்த கூடாது. 27 00:01:33,000 --> 00:01:38,000 நீங்கள் எப்படி பயன்படுத்துவது? 28 00:01:38,000 --> 00:01:42,000 நீங்கள் எப்படி பயன்படுத்துவது? 29 00:01:42,000 --> 00:01:45,000 >> இது ஒரு பொதுவான கேள்வி 30 00:01:45,000 --> 00:01:49,000 என்ன அது ரன் மற்றும் வெளியீடு பாருங்கள். 31 00:01:49,000 --> 00:01:51,000 வெளியீடு முறை நிறைய பெரும். 32 00:01:51,000 --> 00:01:54,000 நீங்கள் சில மோசமாக தவறு இருந்தால் அங்கு வேடிக்கை பிழைகளை கூட இல்லை 33 00:01:54,000 --> 00:01:59,000 ஒரு வட்டத்திற்கு நடந்து, அது இறுதியில் ", வே பல பிழைகள் என்று. 34 00:01:59,000 --> 00:02:03,000 நான் இப்போது எண்ணி நிறுத்த போகிறேன். " 35 00:02:03,000 --> 00:02:08,000 இது அடிப்படையில் நீங்கள் இட வேண்டும் என்று உரை வெளியீடு தான். 36 00:02:08,000 --> 00:02:13,000 இறுதியில், இது, உங்களுக்கு என்று எந்த நினைவக கசிவை சொல்லும் 37 00:02:13,000 --> 00:02:16,000 பயனுள்ள எத்தனை தொகுதிகள், முடியும் என்பதால் 38 00:02:16,000 --> 00:02:20,000 அது ஒரு தொகுதி unfreed என்றால், அது கண்டுபிடிக்க வழக்கமாக எளிதாகவும் 39 00:02:20,000 --> 00:02:23,000 1,000 தொகுதிகள் unfreed விட. 40 00:02:23,000 --> 00:02:26,000 Unfreed 1,000 தொகுதிகள் ஒருவேளை நீங்கள் பெறலாம் இல்லை என்றால் 41 00:02:26,000 --> 00:02:30,000 சரியான அல்லது ஏதாவது உங்கள் இணைக்கப்பட்ட பட்டியல்கள். 42 00:02:30,000 --> 00:02:32,000 அந்த Valgrind. 43 00:02:32,000 --> 00:02:35,000 >> இப்போது நாம், கேள்விகள் நம் பிரிவில் வேண்டும் 44 00:02:35,000 --> 00:02:38,000 இதில் நீங்கள் பதிவிறக்க வேண்டிய அவசியம் இல்லை. 45 00:02:38,000 --> 00:02:41,000 நீங்கள் என் பெயரை கிளிக் மற்றும் விண்வெளி அவர்களை கவனித்து கொள்ள முடியும். 46 00:02:41,000 --> 00:02:44,000 இப்போது என்னை கிளிக். 47 00:02:44,000 --> 00:02:46,000 திருத்த 1 முதல் செய்கிறாய் ஸ்டாக், இருக்கும். 48 00:02:46,000 --> 00:02:55,000 திருத்த 2 வரிசை இருக்கும், மற்றும் திருத்த 3 தனித்தனி இணைக்கப்பட்ட பட்டியலில் இருக்கும். 49 00:02:55,000 --> 00:02:58,000 எங்கள் அடுக்கு கொண்ட துவங்கும். 50 00:02:58,000 --> 00:03:02,000 அதை இங்கே சொல்வது போல், ஒரு அடுக்கு, மிக அடிப்படையான ஒன்றாகும் 51 00:03:02,000 --> 00:03:07,000 கணினி அறிவியல் அடிப்படை தரவு கட்டமைப்புகள். 52 00:03:07,000 --> 00:03:11,000 மிகவும் வகைமாதிரியான உதாரணமாக இருக்கிறது 53 00:03:11,000 --> 00:03:13,000 சாப்பாட்டு அறையில் தட்டுக்களும் பற்றிய ஸ்டேக். 54 00:03:13,000 --> 00:03:16,000 நீங்கள் ஒரு அடுக்கு அறிமுகப்படுத்தப்பட்டது வருகின்றன போதெல்லாம் அது, அடிப்படையில் தான் 55 00:03:16,000 --> 00:03:20,000 யாரோ, சொல்ல போகிறார் "தட்டுக்களில் ஒரு அடுக்கு போன்ற, ஓ." 56 00:03:20,000 --> 00:03:22,000 நீங்கள் தட்டுக்களும் வரை குவியலாக. 57 00:03:22,000 --> 00:03:24,000 பிறகு நீங்கள் ஒரு தட்டில் இழுக்க சென்று, 58 00:03:24,000 --> 00:03:31,000 இழுத்து போகிறாள் என்று முதல் தட்டில் ஸ்டாக் வைக்கப்பட்டது கடந்த ஒன்றாகும். 59 00:03:31,000 --> 00:03:34,000 இது போன்ற அடுக்கு இங்கே என்கிறார் 60 00:03:34,000 --> 00:03:37,000 நாம் ஸ்டேக் என்று நினைவகம் பிரிவில் வேண்டும். 61 00:03:37,000 --> 00:03:40,000 ஏன் அதை ஸ்டேக் அழைக்கப்படுகிறது? 62 00:03:40,000 --> 00:03:42,000 >> ஏனெனில் ஒரு அடுக்கு தரவு கட்டமைப்பு போன்ற, 63 00:03:42,000 --> 00:03:46,000 இது, ஸ்டேக்கில் ஸ்டேக் பிரேம்கள் தள்ளுகிறது மற்றும் மேல்தோன்றும் 64 00:03:46,000 --> 00:03:53,000 ஸ்டாக் பிரேம்கள் ஒரு செயல்பாடு ஒரு குறிப்பிட்ட அழைப்பு போன்ற எங்கே. 65 00:03:53,000 --> 00:03:57,000 மற்றும் ஒரு அடுக்கு போன்ற, நீங்கள் எப்போதும் திரும்ப வேண்டும் 66 00:03:57,000 --> 00:04:03,000 ஒரு சார்பு அழைப்பு நீங்கள் மீண்டும் குறைந்த ஸ்டேக் பிரேம்கள் இறங்கி பெற முடியும் முன். 67 00:04:03,000 --> 00:04:08,000 நீங்கள் முக்கிய அழைப்பு foo அழைப்பு பட்டியில் மற்றும் முக்கிய நேரடியாக பார் திரும்ப முடியாது. 68 00:04:08,000 --> 00:04:14,000 அது எப்போதும் அழுத்தம் மற்றும் உறுத்தும் சரியான ஸ்டேக் பின்பற்ற வேண்டும். 69 00:04:14,000 --> 00:04:18,000 இரண்டு செயல்பாடுகளை, நான் சொன்னது போல், புஷ் மற்றும் பாப் இருக்கும். 70 00:04:18,000 --> 00:04:20,000 அந்த உலகளாவிய விதிமுறைகள் உள்ளன. 71 00:04:20,000 --> 00:04:26,000 நீங்கள் அடுக்குகள் இல்லை என்ன விஷயம் வகையில் புஷ் மற்றும் பாப் தெரிந்திருக்க வேண்டும். 72 00:04:26,000 --> 00:04:28,000 நாம் வரிசைகளில் வெவ்வேறு வகையான உள்ளன பார்க்கிறேன். 73 00:04:28,000 --> 00:04:32,000 அது உண்மையில் ஒரு உலகளாவிய கால இல்லை, ஆனால் புஷ் மற்றும் பாப் அடுக்குகள் பொதுவான உள்ளது. 74 00:04:32,000 --> 00:04:34,000 புஷ் தான் ஸ்டேக் போடுவார்கள். 75 00:04:34,000 --> 00:04:37,000 பாப் ஸ்டேக் எடுத்து வருகிறது. 76 00:04:37,000 --> 00:04:43,000 நாம், நம் typedef struct ஸ்டாக் இல்லை இங்கே பார்க்க 77 00:04:43,000 --> 00:04:46,000 நாம் எரிப்பதை ** சரங்களை வேண்டும். 78 00:04:46,000 --> 00:04:51,000 எந்த ** மூலம் பயப்படாதே. 79 00:04:51,000 --> 00:04:54,000 இந்த நூல் ஒரு வரிசை என்ற முடிவுக்கு வருகிறது 80 00:04:54,000 --> 00:04:58,000 எழுத்துக்கள் சுட்டிகளையும் அல்லது ஒரு வரிசை, அங்கு 81 00:04:58,000 --> 00:05:00,000 எழுத்துக்கள் சுட்டிகளையும் சரங்களை இருக்கும். 82 00:05:00,000 --> 00:05:05,000 அது சரங்களை இருக்க வேண்டும் இல்லை, ஆனால் இங்கே, அவர்கள் சரங்களை போகிறாய். 83 00:05:05,000 --> 00:05:08,000 >> நாம் சரங்களின் வரிசை உள்ளது. 84 00:05:08,000 --> 00:05:14,000 நாம் ஸ்டேக்கில் தற்போது எத்தனை சக்திகள் பிரதிநிதித்துவப்படுத்தும் ஒரு அளவு,, இல்லை 85 00:05:14,000 --> 00:05:19,000 மற்றும் நாம் ஸ்டேக்கில் எத்தனை சக்திகள் இருக்க முடியும் என்பது திறன், இல்லை. 86 00:05:19,000 --> 00:05:22,000 திறன், 1 விட ஒன்று என துவங்க வேண்டும் 87 00:05:22,000 --> 00:05:27,000 ஆனால் அளவு 0 என துவங்க போகிறது. 88 00:05:27,000 --> 00:05:36,000 இப்போது, நீங்கள் ஒரு ஸ்டேக் என்று மூன்று வெவ்வேறு வழிகளில் அடிப்படையில் உள்ளன. 89 00:05:36,000 --> 00:05:39,000 நன்றாக, அங்கு அநேகமாக இன்னும், ஆனால் இரண்டு முக்கிய வழிகள் உள்ளன 90 00:05:39,000 --> 00:05:43,000 நீங்கள் பயன்படுத்தி அதை செயல்படுத்த முடியும், அல்லது நீங்கள் ஒரு இணைக்கப்பட்ட பட்டியலில் பயன்படுத்தி அதை செயல்படுத்த முடியாது. 91 00:05:43,000 --> 00:05:48,000 இணைக்கப்பட்ட பட்டியல்கள் வகையான இருந்து அடுக்குகள் செய்ய சாதாரணமான இருக்கும். 92 00:05:48,000 --> 00:05:51,000 இது, தொடர்புடைய பட்டியல்கள் பயன்படுத்தி ஒரு ஸ்டாக் செய்ய மிகவும் எளிது 93 00:05:51,000 --> 00:05:55,000 இங்கு, நாம், அணிகளை பயன்படுத்தி ஒரு அடுக்கு போகிறாய் 94 00:05:55,000 --> 00:05:59,000 பின்னர் அணிகளை பயன்படுத்தி, நீங்கள் அதை பற்றி யோசிக்க முடியும் இரண்டு வழிகளும் இல்லை. 95 00:05:59,000 --> 00:06:01,000 முன், நான் சொல்லும் போது நாம், ஸ்டாக் ஒரு திறன் வேண்டும் 96 00:06:01,000 --> 00:06:04,000 நாம் ஸ்டேக் ஒரு உறுப்பு பொருத்த முடியும். 97 00:06:04,000 --> 00:06:09,000 >> அது நடக்கலாம் ஒரு வழியாக விரைவில் 10 உறுப்புகள் பாதிக்கும் என, நீங்கள் முடித்துவிட்டீர்கள் உள்ளது. 98 00:06:09,000 --> 00:06:13,000 நீங்கள் உலகின் 10 விஷயங்கள் கட்டப்படுகிறது ஒரு மேல் இருக்கும் என்று தெரியும் 99 00:06:13,000 --> 00:06:16,000 நீங்கள், உங்கள் ஸ்டேக் மேல் 10 விஷயங்கள் உள்ளன மாட்டேன் 100 00:06:16,000 --> 00:06:20,000 இதில் நீங்கள் உங்கள் ஸ்டேக் அளவை கட்டுப்படுத்துகிறது ஒரு மேல் முடியும். 101 00:06:20,000 --> 00:06:23,000 அல்லது நீங்கள், உங்கள் ஸ்டேக் வரம்பற்றது வேண்டும் முடியும் 102 00:06:23,000 --> 00:06:27,000 நீங்கள் ஒரு வரிசை செய்கிறீர்கள் என்றால், ஆனால், அந்த, ஒவ்வொரு முறை நீங்கள் 10 உறுப்புகள் வெற்றி என்று அர்த்தம் 103 00:06:27,000 --> 00:06:29,000 நீங்கள் 20 உறுப்புகள் பாதிக்கப்பட்ட போது நீங்கள், 20 உறுப்புகளை வளர வேண்டும், மற்றும் 104 00:06:29,000 --> 00:06:33,000 நீங்கள் 30 உறுப்புகள் அல்லது 40 உறுப்புகள் உங்கள் வரிசை வளர போகிறது. 105 00:06:33,000 --> 00:06:37,000 நீங்கள் இங்கு செய்ய போகிறோம் என்ன இது திறன், அதிகரிக்க வேண்டும் போகிறோம். 106 00:06:37,000 --> 00:06:40,000 நாம், நம் ஸ்டேக் அதிகபட்ச அளவை எட்டும் ஒவ்வொரு முறை 107 00:06:40,000 --> 00:06:46,000 நாம் வேறு ஏதாவது தள்ளும் போது, நாம் திறனை அதிகரிக்க வேண்டும் போகிறோம். 108 00:06:46,000 --> 00:06:50,000 இங்கே, நாங்கள் மிகுதி bool புஷ் (எரிப்பதை * str) என அறிவித்தார். 109 00:06:50,000 --> 00:06:54,000 கரி * str, நாம் ஸ்டேக் மீது அழுத்தம் என்று சரம் 110 00:06:54,000 --> 00:06:58,000 மற்றும் bool தான் நாம் வெற்றி அல்லது தோல்வி என்பதை கூறுகிறார். 111 00:06:58,000 --> 00:07:00,000 >> எப்படி நாம் தோல்வியடையும்? 112 00:07:00,000 --> 00:07:04,000 நீங்கள் யோசிக்க முடியும் என்று மட்டுமே சூழ்நிலையில் என்ன 113 00:07:04,000 --> 00:07:07,000 நாம் தவறான திரும்ப வேண்டும், அங்கு? 114 00:07:07,000 --> 00:07:09,000 Yeah. 115 00:07:09,000 --> 00:07:12,000 [மாணவர்] இது முழு மற்றும் நாம் ஒரு வரம்புற்றது செயல்படுத்த பயன்படுத்தினால். 116 00:07:12,000 --> 00:07:17,000 சரி, அதனால் நாம் எப்படி வரையறுப்பது அவர் பதில் 117 00:07:17,000 --> 00:07:23,000 இது முழு மற்றும் நாம் ஒரு கட்டுப்படுத்தப்பட்ட செயலாக்கம் பயன்படுத்தி நீங்கள். 118 00:07:23,000 --> 00:07:26,000 நாம் நிச்சயமாக தவறான வருவோம். 119 00:07:26,000 --> 00:07:31,000 விரைவில் நாம் வரிசையில் 10 விஷயங்கள் ஹிட் என, நாங்கள் 11 பொருந்தும் முடியாது, நாம் தவறான திரும்பி எனவே. 120 00:07:31,000 --> 00:07:32,000 இது வரம்பற்றது என்றால் என்ன? Yeah. 121 00:07:32,000 --> 00:07:38,000 நீங்கள் சில காரணங்களால் வரிசை விரிவாக்க முடியாது. 122 00:07:38,000 --> 00:07:43,000 சரி, இவ்வளவு நினைவகம், ஒரு குறைவான ஆதாரம் 123 00:07:43,000 --> 00:07:51,000 இறுதியில், நாங்கள் மீண்டும் மேல் அடுக்கு மீது அழுத்தம் விஷயங்களை வைத்து இருந்தால், 124 00:07:51,000 --> 00:07:54,000 நாம் பொருந்தும் ஒரு பெரிய வரிசை முயற்சி ஒதுக்க போகிறோம் 125 00:07:54,000 --> 00:07:59,000 நாங்கள் பயன்படுத்தும் பெரிய திறன், மற்றும் malloc அல்லது அதை தவறான திரும்ப போகிறது. 126 00:07:59,000 --> 00:08:02,000 நன்றாக, malloc பூஜ்ய வரும். 127 00:08:02,000 --> 00:08:05,000 >> நினைவில் வைத்து கொள்ளுங்கள், நீங்கள் எப்போதும் malloc என்று ஒவ்வொரு முறையும், நீங்கள் காண சோதனை அது 128 00:08:05,000 --> 00:08:12,000 பூஜ்ய கொடுக்கிறது அல்லது வேறு ஒரு சரியான துப்பறியும் உள்ளது. 129 00:08:12,000 --> 00:08:17,000 நாம் ஒரு எல்லையற்ற ஸ்டேக் வேண்டும் என்பதால், 130 00:08:17,000 --> 00:08:21,000 நாம் முயற்சி செய்தால் நாம் தவறான திரும்பி போகிறாய் மட்டுமே வழக்கு 131 00:08:21,000 --> 00:08:26,000 திறன் மற்றும் malloc அதிகரிக்க அல்லது தவறான கொடுக்கிறது என்ன. 132 00:08:26,000 --> 00:08:30,000 பின்னர் பாப், வாதங்கள் இல்லை எடுக்கும் 133 00:08:30,000 --> 00:08:37,000 அது ஸ்டேக் மேல் என்று சரம் கொடுக்கிறது. 134 00:08:37,000 --> 00:08:41,000 அதை சமீபத்தில் ஸ்டேக்கில் தள்ளப்பட்டது, திரும்பி என்ன பாப் உள்ளது 135 00:08:41,000 --> 00:08:44,000 மேலும் ஸ்டேக் இருந்து நீக்குகிறது. 136 00:08:44,000 --> 00:08:50,000 மற்றும் ஸ்டேக்கில் இல்லை என்றால் அது வெற்று கொடுக்கிறது என்று கவனிக்க. 137 00:08:50,000 --> 00:08:53,000 இது ஸ்டேக் காலியாக உள்ளது என்று எப்போதும் சாத்தியமாகும். 138 00:08:53,000 --> 00:08:55,000 ஜாவாவில், நீங்கள், அல்லது பிற மொழிகளில் பயன்படுத்தப்படுகிறது என்றால், 139 00:08:55,000 --> 00:09:01,000 ஒரு வெற்று அடுக்கு இருந்து எடுக்க முயற்சி ஒரு விதிவிலக்கு அல்லது ஏதாவது உண்டாக்கும். 140 00:09:01,000 --> 00:09:09,000 >> ஆனால் சி, பூஜ்ய நாம் இந்த பிரச்சனையை கையாள எப்படி வழக்குகள் நிறைய வகையாக. 141 00:09:09,000 --> 00:09:13,000 பூஜ்ய திரும்பி நாம் ஸ்டேக் காலியாக என்று குறிப்பிட்ட போகிறோம் எப்படி இருக்கும். 142 00:09:13,000 --> 00:09:16,000 நாங்கள், உங்கள் ஸ்டேக் செயல்பாட்டை சோதிக்க என்று குறியீடு வழங்கியுள்ளோம் 143 00:09:16,000 --> 00:09:19,000 அழுத்தம் மற்றும் பாப் செயல்படுத்த. 144 00:09:19,000 --> 00:09:23,000 இந்த குறியீடு நிறைய முடியாது. 145 00:09:23,000 --> 00:09:40,000 நான், உண்மையில், நாங்கள் அதை செய்ய முன், குறிப்பை, குறிப்பை- 146 00:09:40,000 --> 00:09:44,000 நீங்கள் அதை பார்க்கவில்லை என்றால், malloc மட்டுமே செயல்பாடு உள்ளது 147 00:09:44,000 --> 00:09:47,000 என்று நீங்கள் குவியல் நினைவகத்தை ஒதுக்கீடு. 148 00:09:47,000 --> 00:09:51,000 Alloc செயல்பாடுகளை ஒரு குடும்பம் இருக்கிறது. 149 00:09:51,000 --> 00:09:53,000 முதல் நீங்கள் பயன்படுத்த நீங்கள் எந்த malloc, இல்லை. 150 00:09:53,000 --> 00:09:56,000 பின்னர் malloc அதே காரியத்தை செய்யும் calloc, அங்கு 151 00:09:56,000 --> 00:09:59,000 ஆனால் அதை நீங்கள் எல்லாம் வெளியே பூஜ்ஜியத்திற்கு. 152 00:09:59,000 --> 00:10:04,000 நீங்கள் ஏதாவது mallocing பிறகு பூஜ்ய எல்லாவற்றையும் அமைக்க வேண்டும் என்றால் 153 00:10:04,000 --> 00:10:06,000 நீங்கள் பதிலாக எழுதும் முதல் இடத்தில் calloc பயன்படுத்தப்படும் 154 00:10:06,000 --> 00:10:09,000 நினைவக முழு தொகுதி அவுட் பூஜ்ஜியத்திற்கு லூப் ஒரு. 155 00:10:09,000 --> 00:10:15,000 >> Realloc, malloc போல், சிறப்பு வழக்குகள் நிறைய உண்டு 156 00:10:15,000 --> 00:10:19,000 ஆனால் அடிப்படையில் realloc என்ன ஆகும் 157 00:10:19,000 --> 00:10:24,000 ஏற்கனவே ஒதுக்கப்பட்ட என்று ஒரு சுட்டிக்காட்டி ஆகும். 158 00:10:24,000 --> 00:10:27,000 Realloc நீங்கள் இங்கே கவனம் செலுத்த வேண்டும் செயல்பாடு ஆகும். 159 00:10:27,000 --> 00:10:31,000 ஏற்கனவே malloc திரும்பி என்று ஒரு சுட்டிக்காட்டி ஆகும். 160 00:10:31,000 --> 00:10:35,000 நாம் உங்களுக்கு malloc இருந்து 10 பைட்டுகள் ஒரு சுட்டிக்காட்டி வேண்டும் என்று. 161 00:10:35,000 --> 00:10:38,000 பின்னர் நீங்கள், நீங்கள் 20 பைட்டுகள் தேவை உணர்ந்து 162 00:10:38,000 --> 00:10:42,000 எனவே, 20 பைட்டுகள் என்று சுட்டிக்காட்டி மீது realloc அழைப்பு 163 00:10:42,000 --> 00:10:47,000 மற்றும் realloc தானாகவே எல்லாம் மேலாக நகலெடுக்க. 164 00:10:47,000 --> 00:10:51,000 நீங்கள் தான் நான் 10 பைட்டுகள் ஒரு தொகுதி உள்ளது போல், மீண்டும் malloc என்று. என்றால் 165 00:10:51,000 --> 00:10:53,000 இப்போது நான் 20 பைட்டுகள் ஒரு தொகுதி, வேண்டும் 166 00:10:53,000 --> 00:10:58,000 அதனால் நான் malloc 20 பைட்டுகள் என்றால், நான் கைமுறையாக முதல் விஷயம் இருந்து 10 பைட்டுகள் மீது நகலெடுக்க வேண்டும் 167 00:10:58,000 --> 00:11:01,000 முதல் விஷயம் இரண்டாவது விஷயம் குறித்து பின்னர் இலவச. 168 00:11:01,000 --> 00:11:04,000 Realloc நீங்கள் அந்த கையாளும். 169 00:11:04,000 --> 00:11:11,000 >> கையொப்பம், வெற்றிடத்தை * போகிறது அறிவிப்பு 170 00:11:11,000 --> 00:11:15,000 இது தான், நினைவகம் தொகுதி ஒரு சுட்டிக்காட்டி திரும்பிய 171 00:11:15,000 --> 00:11:17,000 பின்னர் வெற்றிடத்தை * PTR. 172 00:11:17,000 --> 00:11:22,000 நீங்கள் ஒரு பொதுவான சுட்டிக்காட்டி என வெற்றிடத்தை * என்று முடியும். 173 00:11:22,000 --> 00:11:27,000 பொதுவாக, நீங்கள், வெற்றிடத்தை * சமாளிக்க 174 00:11:27,000 --> 00:11:30,000 ஆனால் malloc ஒரு வெற்றிடத்தை * திரும்பி, பின்னர் அது போல பயன்படுத்தப்படும் 175 00:11:30,000 --> 00:11:34,000 இந்த உண்மையில் ஒரு எரிப்பதை * போகிறது. 176 00:11:34,000 --> 00:11:37,000 malloc வந்தார் என்று முந்தைய வெற்றிடத்தை * 177 00:11:37,000 --> 00:11:41,000 இப்போது அளவு பின் realloc அனுப்ப வேண்டும் என்று, மற்றும் 178 00:11:41,000 --> 00:11:49,000 நீங்கள் ஒதுக்க வேண்டும் பைட்டுகள் புதிய எண், உங்கள் புதிய திறன் உள்ளது. 179 00:11:49,000 --> 00:11:57,000 நான் இரண்டு மூன்று நிமிடங்கள் கொடுக்க, நம் இடத்தில் அதை செய்கிறேன். 180 00:11:57,000 --> 00:12:02,000 திருத்த 1 தொடங்கும். 181 00:12:16,000 --> 00:12:21,000 நான், மிகுதி செயல்படுத்த போதுமான நேரம் பற்றி பின்னர் வட்டம் நீங்கள் நிறுத்த வேண்டும் 182 00:12:21,000 --> 00:12:24,000 பின்னர் நான் பாப் செய்ய மற்றொரு இடைவெளி கொடுக்க வேண்டும். 183 00:12:24,000 --> 00:12:27,000 ஆனால், அது உண்மையில் அனைத்து அந்த அளவுக்கு குறியீடு அல்ல. 184 00:12:27,000 --> 00:12:35,000 மிகவும் குறியீடு திறன் விரிவடைந்து, ஒருவேளை விரிவடைந்து பொருள். 185 00:12:35,000 --> 00:12:39,000 சரி, முற்றிலும் செய்யப்படும் எந்த அழுத்தம், 186 00:12:39,000 --> 00:12:47,000 ஆனால் நீண்ட நீங்கள் சரியான பாதையில் தான் உங்களை போல, நல்லது. 187 00:12:47,000 --> 00:12:53,000 >> யார் அவர்கள் என்னை இழுத்து கொண்டு கருதினால் எந்த குறியீடு உள்ளதா? 188 00:12:53,000 --> 00:12:59,000 சரி, நான், ஆனால் யாரும் நான் இழுக்க முடியும் எந்த குறியீடு இருக்கிறது? 189 00:12:59,000 --> 00:13:05,000 சரி, நீங்கள் எதுவாக இருந்தாலும், அதை சேமிக்க, ஆரம்பிக்கலாமா? 190 00:13:05,000 --> 00:13:09,000 நான் எப்போதும் படி மறந்து. 191 00:13:09,000 --> 00:13:15,000 சரி, புஷ் பார்த்து, 192 00:13:15,000 --> 00:13:18,000 உங்கள் குறியீடு விளக்க வேண்டுமா? 193 00:13:18,000 --> 00:13:24,000 [மாணவர்] முதலில், நான் அளவு அதிகரித்துள்ளது. 194 00:13:24,000 --> 00:13:28,000 நான் ஒருவேளை நான் அந்த-எப்படியும் வேண்டும் நினைக்கிறேன், நான், அளவு அதிகரித்துள்ளது 195 00:13:28,000 --> 00:13:31,000 இது திறன் குறைவாக இருந்தால் நான் பார்க்கிறேன். 196 00:13:31,000 --> 00:13:36,000 அது திறன் குறைவாக இருந்தால், நான் ஏற்கனவே அந்த வரிசையில் சேர்க்க. 197 00:13:36,000 --> 00:13:42,000 அது இல்லை என்றால், நான், 2 திறன் பெருக்கி 198 00:13:42,000 --> 00:13:50,000 நான் இப்போது ஒரு பெரிய திறன் அளவு ஏதோ சரங்களை வரிசை மறு. 199 00:13:50,000 --> 00:13:55,000 அந்த தவறினால் பின்னர், நான் பயனர் சொல்ல மற்றும், தவறான திரும்ப 200 00:13:55,000 --> 00:14:04,000 அது நல்லது என்றால், நான் புதிய இடத்தில் சரம் போட்டு. 201 00:14:04,000 --> 00:14:07,000 >> [ராப் பி] நாம் இங்கே ஒரு நல்ல பிட்வைஸ் ஆபரேட்டர் பயன்படுத்தப்படும் என்று மேலும் அறிவிப்பு 202 00:14:07,000 --> 00:14:09,000 2 பெருக்கவும் வேண்டும். 203 00:14:09,000 --> 00:14:11,000 நினைவில் வைத்து கொள்ளுங்கள், இடது மாற்றத்தை எப்போதும் 2 பெருக்கி போகிறது. 204 00:14:11,000 --> 00:14:15,000 அதன் அர்த்தம் என்பதை நினைவில் சரியான மாற்றத்தை வரை 2 வகுக்கப்படுகிறது 205 00:14:15,000 --> 00:14:18,000 2 வகுக்க ஒரு முழு எண் போன்ற 2 பிரிக்க. 206 00:14:18,000 --> 00:14:20,000 அதை இங்கே அல்லது அங்கு ஒரு 1 வெட்டு இருக்கும். 207 00:14:20,000 --> 00:14:26,000 ஆனால் 1 விட்டு மாற்றத்தை எப்போதும், 2 பெருக்கி போகிறது 208 00:14:26,000 --> 00:14:32,000 நீங்கள் வழிதல் முழு எல்லைகளுக்கு வரை, மற்றும் அது முடியாது. 209 00:14:32,000 --> 00:14:34,000 ஒரு பக்க கருத்து. 210 00:14:34,000 --> 00:14:39,000 நான், நீ, இந்த கூறியோ, எந்த வழியில் குறியீட்டு மாற்ற போவதில்லை விரும்புகிறேன் 211 00:14:39,000 --> 00:14:48,000 ஆனால் நான் இந்த மாதிரி ஏதாவது செய்ய வேண்டும். 212 00:14:48,000 --> 00:14:51,000 உண்மையில் இது சற்று நீண்ட செய்ய போகிறது. 213 00:15:04,000 --> 00:15:08,000 ஒருவேளை இந்த, இந்த காட்ட சரியான வழக்கு இல்லை 214 00:15:08,000 --> 00:15:14,000 ஆனால் நான், இந்த தொகுதிகள் என்ற பிரிவில் இது போன்ற 215 00:15:14,000 --> 00:15:17,000 இந்த நடந்தால் பரவாயில்லை, நான், ஏதாவது செய்ய போகிறேன் 216 00:15:17,000 --> 00:15:19,000 பின்னர் செயல்பாடு செய்யப்படுகிறது. 217 00:15:19,000 --> 00:15:22,000 நான் இந்த விழாவிற்கு கீழே என் கண்கள் வழி உருட்டும் தேவையில்லை 218 00:15:22,000 --> 00:15:25,000 வேறு பிறகு என்ன நடக்கிறது என்பதை பார்க்க. 219 00:15:25,000 --> 00:15:27,000 இந்த நடந்தால் அது தான், பின் நான் திரும்பி. 220 00:15:27,000 --> 00:15:30,000 இது இந்த அப்பால் எல்லாம் நல்ல சேர்க்கப்பட்ட நன்மை உண்டு 221 00:15:30,000 --> 00:15:33,000 இப்போது ஒருமுறை விட்டு. 222 00:15:33,000 --> 00:15:40,000 நான் இனி, முதல் நீங்கள் எப்போதும் அபத்தமான நீண்ட வரிசைகளில் அருகில் வேண்டும் 223 00:15:40,000 --> 00:15:45,000 , பின்னர் அந்த 4 பைட்டுகள் உதவ முடியும், மேலும் மேலும் இடது ஒன்று 224 00:15:45,000 --> 00:15:48,000 குறைந்த போல, சரி, நான் நினைவில் கொள்ள வேண்டும் என்றால் நீங்கள் எனக்கு அதிகமாக 225 00:15:48,000 --> 00:15:53,000 நான் வளைய ஒரு ஒரு வேறு உள்ளே உள்ளே ஒரு வட்டத்திற்கு தற்போது தான். 226 00:15:53,000 --> 00:15:58,000 எங்கேயும் நான் வகையான போல், உடனடியாக இந்த திரும்ப செய்ய முடியும். 227 00:15:58,000 --> 00:16:05,000 இது முற்றிலும் விருப்ப மற்றும் எந்த வழியில் எதிர்பார்க்க முடியாது. 228 00:16:05,000 --> 00:16:12,000 >> [மாணவர்] அங்கு ஒரு அளவு இருக்க வேண்டும் - ஃபெயில் நிலையில்? 229 00:16:12,000 --> 00:16:19,000 இங்கே ஃபெயில் நிலையில் நாம் ஆம், realloc தோல்வியடைந்தது. 230 00:16:19,000 --> 00:16:22,000 , மறைமுகமாக, ஃபெயில் நிலையில் எப்படி கவனிக்க 231 00:16:22,000 --> 00:16:26,000 நாங்கள் இலவச பொருட்களை பின்னர் வரை, நாம் எப்போதும் தோத்துடுவாங்க 232 00:16:26,000 --> 00:16:29,000 நாம் ஏதாவது தள்ள முயற்சி எத்தனை முறை இல்லை. 233 00:16:29,000 --> 00:16:32,000 நாம் தள்ளி வைத்து இருந்தால், நாம், உயர்த்துவதன் அளவு வைத்து 234 00:16:32,000 --> 00:16:36,000 நாம் ஸ்டேக் மீது எதுவும் போடவில்லை கூட. 235 00:16:36,000 --> 00:16:39,000 பொதுவாக நாம் வரை அளவு அதிகரிக்கவில்லை 236 00:16:39,000 --> 00:16:43,000 நாம் வெற்றிகரமாக ஸ்டேக் அது போகிறோம் பிறகு. 237 00:16:43,000 --> 00:16:50,000 நாம் ஒன்று இங்கே மற்றும் இங்கே, நான், அதை செய்ய வேண்டும். 238 00:16:50,000 --> 00:16:56,000 அதற்கு பதிலாக ≤ திறன் s.size சொல்லி பின்னர், அது, திறன் குறைவாக உள்ளது 239 00:16:56,000 --> 00:17:01,000 எல்லாம் அங்கு நாம் சென்று தான். 240 00:17:01,000 --> 00:17:07,000 >> மற்றும் நினைவு கொள், நாம் ஒருவேளை தவறான மட்டுமே இடத்தில் திரும்ப முடியும் 241 00:17:07,000 --> 00:17:14,000 realloc பூஜ்ய திரும்பி, அங்கு, இங்கு 242 00:17:14,000 --> 00:17:19,000 நீங்கள் நிலையான பிழை நினைவில் நேர்ந்தால், 243 00:17:19,000 --> 00:17:22,000 நீங்கள் ஒரு நிலையான பிழை அச்சிட வேண்டும் எங்கே ஒருவேளை நீங்கள், இந்த ஒரு விஷயத்தில் கருத்தில் கொள்ளலாம் 244 00:17:22,000 --> 00:17:26,000 பதிலாக தரமான அவுட் நேரடியாக அச்சிடும் மிகவும் fprintf stderr. 245 00:17:26,000 --> 00:17:31,000 மீண்டும், ஒரு எதிர்பார்ப்பு அல்ல, ஆனால் அது பிழை இருந்தால் 246 00:17:31,000 --> 00:17:41,000 printf தட்டச்சு, அதை பதிலாக தரமான அவுட் நிலையான பிழை அச்சிட செய்ய வேண்டும். 247 00:17:41,000 --> 00:17:44,000 >> யாரும் கவனிக்க வேறு எதுவும்? ஆம். 248 00:17:44,000 --> 00:17:47,000 [மாணவர்] நீங்கள் [செவிக்கு புலப்படாமல்] மேல் போக முடியுமா? 249 00:17:47,000 --> 00:17:55,000 [ராப் பி] ஆமாம், உண்மையான இது binariness அல்லது என்ன இது? 250 00:17:55,000 --> 00:17:57,000 [மாணவர்] எனவே நீங்கள் 2 அதை பெருக்கி? 251 00:17:57,000 --> 00:17:59,000 [ராப் பி] சரி, அடிப்படையில். 252 00:17:59,000 --> 00:18:11,000 பைனரி நிலத்தில், நாம் எப்போதும் இலக்கங்கள் எங்கள் அமைப்பு. 253 00:18:11,000 --> 00:18:22,000 வலது பக்க இங்கே அடிப்படையில் செருகி அது 1 இந்த இடது மாற்றுவதால். 254 00:18:22,000 --> 00:18:25,000 இந்த வகையில் தான் பைனரி என்று எல்லாம் நினைவுக்கு 255 00:18:25,000 --> 00:18:28,000 , 2 ஒரு சக்தி, இந்த 0 2 பிரதிபலிக்கிறது 256 00:18:28,000 --> 00:18:30,000 1 இந்த 2, இந்த 2 2. 257 00:18:30,000 --> 00:18:33,000 இப்போது வலது பக்க ஒரு 0 சேர்த்துக்கொள்வதன் மூலம், நாம் எல்லாம் இடம் பெயர. 258 00:18:33,000 --> 00:18:38,000 என்ன 0 2 பயன்படுத்தப்படும் 2, இப்போது 2 1 2 உள்ளது. 259 00:18:38,000 --> 00:18:41,000 நாம் சேர்க்கப்பட்டது என்று வலது பக்க 260 00:18:41,000 --> 00:18:44,000 அவசியம் 0 போகிறது, 261 00:18:44,000 --> 00:18:46,000 எந்த அர்த்தமும். 262 00:18:46,000 --> 00:18:49,000 நீங்கள் இதுவரை 2 ஒரு எண்ணை பெருக்கி என்றால், அது, ஒற்றைப்படை முடிவுக்கு போவதில்லை 263 00:18:49,000 --> 00:18:54,000 அதனால் 0 இடத்திற்கு 2, 0 இருக்க வேண்டும் 264 00:18:54,000 --> 00:18:59,000 நீங்கள் மாற்ற நடக்கும் என்றால் இந்த நான் பாதி முன் எச்சரிக்கை என்ன? 265 00:18:59,000 --> 00:19:01,000 ஒரு முழு எண் உள்ள பல பிட்டுகள் அப்பால், 266 00:19:01,000 --> 00:19:04,000 இந்த 1 போகவில்லை முடிவுக்கு வருகிறது. 267 00:19:04,000 --> 00:19:10,000 நீங்கள் உண்மையிலேயே பெரிய கொள்ளளவில் கையாள்வதில் வேண்டும் நேர்ந்தால் அந்த கவலையெல்லாம் இல்லை. 268 00:19:10,000 --> 00:19:15,000 ஆனால் அந்த நேரத்தில், நீங்கள், விஷயங்களை பில்லியன் வரிசை கையாள்வதில் 269 00:19:15,000 --> 00:19:25,000 எப்படியும் நினைவகத்தில் பொருந்துவதில்லை கூடிய. 270 00:19:25,000 --> 00:19:31,000 >> இப்போது நாம் கூட எளிதாக இது பாப், பெற முடியும். 271 00:19:31,000 --> 00:19:36,000 நீங்கள் ஒரு மொத்தமாக எடுக்க நேர்ந்தால் நீங்கள், அது போன்ற 272 00:19:36,000 --> 00:19:38,000 இப்போது நீங்கள் மீண்டும் அரை திறன் இருக்கிறாய். 273 00:19:38,000 --> 00:19:42,000 நீங்கள், நீங்கள் இல்லை நினைவக அளவு சுருக்க realloc முடியும் 274 00:19:42,000 --> 00:19:47,000 ஆனால் நீங்கள் அதை பற்றி கவலைப்பட வேண்டிய அவசியம் இல்லை, அதனால் தான் realloc வழக்கு போகிறாள் 275 00:19:47,000 --> 00:19:50,000 , நினைவக குறைந்து இல்லை, நினைவாற்றல் பெருகும் 276 00:19:50,000 --> 00:19:59,000 இது பாப் சூப்பர் எளிதாக நடக்கிறது. 277 00:19:59,000 --> 00:20:02,000 அடுக்குகள் போன்ற போகிறீர்கள் இது இப்போது வரிசைகளில்,, 278 00:20:02,000 --> 00:20:06,000 ஆனால் நீங்கள் பொருட்களை எடுத்து அந்த வரிசையில் மாறிவிட்டது. 279 00:20:06,000 --> 00:20:10,000 ஒரு வரிசையின் வகைமாதிரியான உதாரணமாக, ஒரு வரி 280 00:20:10,000 --> 00:20:12,000 அதனால் நான் உங்களுக்கு ஆங்கிலம் என்றால் நினைக்கிறேன், நான் 281 00:20:12,000 --> 00:20:17,000 வரிசையில் ஒரு வகைமாதிரியான உதாரணமாக ஒரு வரிசை ஆகும். 282 00:20:17,000 --> 00:20:22,000 ஒரு வரி போன்ற, நீங்கள் வரிசையில் முதல் நபர் என்றால், 283 00:20:22,000 --> 00:20:24,000 நீங்கள் வரி வெளியே முதல் நபர் இருக்கும் என எதிர்பார்க்கலாம். 284 00:20:24,000 --> 00:20:31,000 நீங்கள் வரிசையில் கடைசி நபர் என்றால், நீங்கள் சர்வீஸ் கடைசி நபர் இருக்கும். 285 00:20:31,000 --> 00:20:35,000 ஸ்டாக் LIFO மாதிரி இருந்தது, ஆனால் நாம், அந்த FIFO முறை அழைப்பு. 286 00:20:35,000 --> 00:20:40,000 அந்த வார்த்தைகளை அழகாக உலகளாவிய இருக்கும். 287 00:20:40,000 --> 00:20:46,000 >> அடுக்குகள் போன்ற மற்றும் அணிகளை போல, வரிசைகளில் பொதுவாக மத்தியில் கூறுகள் அணுகலை அனுமதிக்க வேண்டாம். 288 00:20:46,000 --> 00:20:50,000 இங்கே, ஒரு அடுக்கு, நாம் புஷ் மற்றும் பாப் வேண்டும். 289 00:20:50,000 --> 00:20:54,000 இங்கே, நாங்கள் அவர்களை என்கியூ மற்றும் dequeue என்று அழைக்கப்படும் நடக்கும். 290 00:20:54,000 --> 00:20:58,000 நான் இன்னும் மாற்றம் மற்றும் unshift என்று கேள்விப்பட்டேன். 291 00:20:58,000 --> 00:21:02,000 நான் மக்கள் புஷ் மற்றும் பாப் வரிசைகளில் கூட பொருந்தும் சொல்ல கேட்டிருக்கிறேன். 292 00:21:02,000 --> 00:21:05,000 நான், நீக்க, செருக கேள்விப்பட்டேன் 293 00:21:05,000 --> 00:21:11,000 எனவே தள்ளும் நீங்கள் அடுக்குகள் பற்றி பேசுகிறாய் என்றால், நீங்கள் அழுத்தம் மற்றும் உறுத்தும் இருக்கும், பா. 294 00:21:11,000 --> 00:21:16,000 நீங்கள் வரிசைகளை பற்றி பேசுகிறோம் என்றால், நீங்கள் பயன்படுத்த விரும்பும் வார்த்தைகளை தேர்ந்தெடுக்க முடியும் 295 00:21:16,000 --> 00:21:23,000 செருகும் மற்றும் நீக்க, இது என்று வேண்டும் என்ன என்பதில் கருத்தொற்றுமை இல்லை. 296 00:21:23,000 --> 00:21:27,000 ஆனால் இங்கே, நாம் என்கியூ மற்றும் dequeue வேண்டும். 297 00:21:27,000 --> 00:21:37,000 இப்போது, struct ஸ்டேக் struct கிட்டத்தட்ட ஒரே மாதிரியாக இருக்கும். 298 00:21:37,000 --> 00:21:40,000 ஆனால் நாம் தலை கண்காணிக்க வேண்டும். 299 00:21:40,000 --> 00:21:44,000 நான் அதை இங்கே சொல்வது நினைக்கிறேன், ஆனால் நாம் ஏன் தலையை வேண்டும்? 300 00:21:53,000 --> 00:21:57,000 முன்மாதிரிகள் அழுத்தம் மற்றும் எடுக்க அடிப்படையில் ஒரே மாதிரியானவை. 301 00:21:57,000 --> 00:21:59,000 நீங்கள் புஷ் மற்றும் பாப் என நினைக்க முடியாது. 302 00:21:59,000 --> 00:22:08,000 ஒரே வித்தியாசம் என்னவென்றால், பாப் என்று திரும்பி, அதற்கு பதிலாக கடந்த, இது முதல் திரும்பி வருகிறது. 303 00:22:08,000 --> 00:22:12,000 2, 1, 3, 4, அல்லது ஏதாவது. 304 00:22:12,000 --> 00:22:14,000 இங்கு தொடக்கத்தில் தான். 305 00:22:14,000 --> 00:22:17,000 எங்கள் வரிசை முழுமையாக முழு, எனவே அது நான்கு உறுப்புகள் உள்ளன. 306 00:22:17,000 --> 00:22:21,000 எங்கள் வரிசை முடிவில், தற்போது 2 307 00:22:21,000 --> 00:22:24,000 இப்போது நாம் வேறு ஏதாவது சேர்க்க வேண்டும். 308 00:22:24,000 --> 00:22:29,000 >> நாம் ஸ்டேக் பதிப்பு நாம் என்ன வேறு ஏதோ, நுழைக்க வேண்டும் போது 309 00:22:29,000 --> 00:22:36,000 நாம் நினைவகம் எங்கள் தொகுதி விரிவாக்கப்பட்டது. 310 00:22:36,000 --> 00:22:40,000 இந்த பிரச்சனை என்ன? 311 00:22:40,000 --> 00:22:45,000 [மாணவர்] நீங்கள் 2 நகர்த்த. 312 00:22:45,000 --> 00:22:51,000 நான் வரிசை இறுதியில் பற்றி முன்பு கூறினார், என்ன 313 00:22:51,000 --> 00:22:57,000 இந்த, 1 மணிக்கு நாம் தொடங்கலாம் என்று புரியவில்லையா 314 00:22:57,000 --> 00:23:01,000 நாம் பின்னர் dequeue 3, dequeue 4, dequeue 1 வேண்டும் 315 00:23:01,000 --> 00:23:05,000 பின்னர் dequeue 2, இந்த ஒரு dequeue. 316 00:23:05,000 --> 00:23:08,000 நாம், இப்போது realloc பயன்படுத்த முடியாது 317 00:23:08,000 --> 00:23:11,000 அல்லது குறைந்த பட்சம், நீங்கள் வேறு வழியில் realloc பயன்படுத்த வேண்டும். 318 00:23:11,000 --> 00:23:15,000 ஆனால் ஒருவேளை நீங்கள் தான் realloc பயன்படுத்த கூடாது. 319 00:23:15,000 --> 00:23:18,000 நீங்கள் கைமுறையாக உங்கள் நினைவகம் நகலெடுக்க வேண்டும். 320 00:23:18,000 --> 00:23:21,000 >> நினைவகம் நகலெடுக்க இரண்டு செயல்பாடுகளை உள்ளன. 321 00:23:21,000 --> 00:23:25,000 Memcopy மற்றும் memmove உள்ளது. 322 00:23:25,000 --> 00:23:29,000 நான் தற்போது நீங்கள் பயன்படுத்த விரும்பும் போகிறாய் ஒரு பார்க்க man பக்கங்களை படித்து வருகிறேன். 323 00:23:29,000 --> 00:23:35,000 சரி, memcopy, வித்தியாசம் 324 00:23:35,000 --> 00:23:38,000 memcopy மற்றும் memmove, ஒரு சரியாக வழக்கு கையாளுகிறது என்று 325 00:23:38,000 --> 00:23:41,000 நீங்கள் பிராந்தியத்தில் சார்ந்தோ நடக்கும் என்று ஒரு பகுதிக்கு நகல் அங்கு 326 00:23:41,000 --> 00:23:46,000 நீங்கள் நகல். 327 00:23:46,000 --> 00:23:50,000 Memcopy அதை கையாள முடியாது. Memmove இல்லை. 328 00:23:50,000 --> 00:23:59,000 நீங்கள் பிரச்சனை என்று முடியும் 329 00:23:59,000 --> 00:24:09,000 நாம், நான் இந்த பையன் நகலெடுக்க வேண்டும் என்று 330 00:24:09,000 --> 00:24:13,000 இந்த நபர் இந்த நான்கு. 331 00:24:13,000 --> 00:24:16,000 இறுதியில், வரிசை போன்ற என்ன இருக்க வேண்டும் 332 00:24:16,000 --> 00:24:26,000 நகல் பின்னர் 2, 1, 2, 1, 3, 4, மற்றும் இறுதியில் சில விஷயங்களை பிறகு. 333 00:24:26,000 --> 00:24:29,000 ஆனால் இந்த நாம் உண்மையில் நகலெடுக்க எந்த வரிசையில் நம்பியிருக்கும் 334 00:24:29,000 --> 00:24:32,000 நாங்கள் பகுதியில் நாம் ஒரு நகல் என்று உண்மையை கருத்தில் என்றால் இருந்து 335 00:24:32,000 --> 00:24:35,000 மேலெழுகிறது நாம் இருந்து நகல் நீங்கள் ஒரு, 336 00:24:35,000 --> 00:24:46,000 நாம், இங்கே தொடக்க போல் நாம் போக விரும்பவில்லை இடத்தில் 2 நகலெடுக்க வேண்டும் 337 00:24:46,000 --> 00:24:52,000 பின்னர் முன் நம் சுட்டிகள் நகர்த்த. 338 00:24:52,000 --> 00:24:56,000 >> இப்போது நாம் இங்கே மற்றும் இங்கே இருக்க போகிறோம், இப்போது நாம் நகலெடுக்க வேண்டும் 339 00:24:56,000 --> 00:25:04,000 இந்த நபர் மீது கை மற்றும் முன்னோக்கி எங்கள் சுட்டிகள் நகர்த்த. 340 00:25:04,000 --> 00:25:07,000 நாம் என்ன செய்து முடிவுக்கு போகிறோம், 1, 2, 1, 2, 1 2 341 00:25:07,000 --> 00:25:10,000 அதற்கு பதிலாக பொருத்தமான 2, 1, 2, 1, 3, 4, ஏனெனில் 342 00:25:10,000 --> 00:25:15,000 2, 1 முதல் 3, 4 overrode. 343 00:25:15,000 --> 00:25:19,000 Memmove சரியாக என்று கையாளுகிறது. 344 00:25:19,000 --> 00:25:23,000 இந்த வழக்கில், அடிப்படையில் தான் எப்போதும் memmove பயன்படுத்த 345 00:25:23,000 --> 00:25:26,000 அதை சரியாக கையாளுகிறது ஏனெனில். 346 00:25:26,000 --> 00:25:29,000 பொதுவாக எந்த மோசமான செய்யவும் இல்லை. 347 00:25:29,000 --> 00:25:32,000 யோசனை பதிலாக தொடக்கத்தில் இருந்து தொடங்கி இந்த நகல் உள்ளது 348 00:25:32,000 --> 00:25:35,000 நாம் இங்கே போல, அது, இறுதியில் இருந்து தொடங்குகிறது மற்றும் நகலெடுக்கிறது 349 00:25:35,000 --> 00:25:38,000 அந்த வழக்கில், நீங்கள் ஒரு பிரச்சனை முடியாது. 350 00:25:38,000 --> 00:25:40,000 எந்த அங்கு தொலைந்து. 351 00:25:40,000 --> 00:25:47,000 எப்போதும் memmove பயன்படுத்த. Memcopy பற்றி கவலை இல்லை. 352 00:25:47,000 --> 00:25:51,000 நீங்கள் தனியாக memmove வேண்டும் போகிறோம் எங்கே என்று 353 00:25:51,000 --> 00:26:01,000 உங்கள் வரிசையின் மூடப்பட்டிருக்கும்-சுற்றி பகுதி. 354 00:26:01,000 --> 00:26:04,000 எந்த கவலையும் முழுமையாக செய்ய வேண்டும். 355 00:26:04,000 --> 00:26:10,000 இந்த அடுக்கு, மிகுதி, மற்றும் பாப் விட மிகவும் கடினமாக இருக்கிறது. 356 00:26:10,000 --> 00:26:15,000 >> யாரையும் நாங்கள் வேலை செய்ய எந்த குறியீடு வேண்டும்? 357 00:26:15,000 --> 00:26:21,000 கூட முழுமையாக முழுமையடையாது என்றால்? 358 00:26:21,000 --> 00:26:23,000 [மாணவர்] சரி, அது போதும், முழுமையாக முடிவடையாமல் உள்ளது. 359 00:26:23,000 --> 00:26:27,000 நாம் முடியும் திருத்தம் சேமிக்க முற்றிலும் பாதியில் வரை நன்றாக? 360 00:26:27,000 --> 00:26:32,000 நான் அந்த ஒவ்வொரு முறையும் மறந்து. 361 00:26:32,000 --> 00:26:39,000 நாம் விஷயங்களை அளவை வேண்டும் போது சரி, என்ன புறக்கணித்து நடக்கிறது. 362 00:26:39,000 --> 00:26:42,000 முற்றிலும் மறுஅளவீடு புறக்கணிக்க. 363 00:26:42,000 --> 00:26:49,000 இந்த குறியீடு விளக்க. 364 00:26:49,000 --> 00:26:54,000 அளவு அனைத்து முதல் பிரதியை விட குறைவாக இருந்தால் நான் முதலில் சோதனை 365 00:26:54,000 --> 00:27:01,000 அதன் பின்னர், நான் நுழைக்க நான் தலை + அளவு, எடுத்து 366 00:27:01,000 --> 00:27:05,000 மற்றும் நான், அது அணியின் திறன் சுற்றி மறைப்புகள் உறுதி 367 00:27:05,000 --> 00:27:08,000 நான் அந்த இடத்தில் புதிய சரம் செருக. 368 00:27:08,000 --> 00:27:12,000 நான் அளவு அதிகரிக்கும் மற்றும் உண்மையான திருப்பி. 369 00:27:12,000 --> 00:27:22,000 >> [ராப் பி] இது நிச்சயமாக நீங்கள் மோட் பயன்படுத்த வேண்டும் போகிறாய் அந்த நிகழ்வுகளில் ஒன்றாகும். 370 00:27:22,000 --> 00:27:25,000 நீங்கள் சுற்றி போர்த்தப்படுகின்றது நினைத்தால் நீங்கள், சுற்றி போர்த்தப்படுகின்றது அங்கு வழக்கு எந்த விதமான 371 00:27:25,000 --> 00:27:29,000 உடனடியாக சிந்தனை மோட் இருக்க வேண்டும். 372 00:27:29,000 --> 00:27:36,000 ஒரு விரைவான ஒருங்கிணைத்தல் /, உங்கள் குறியீடு ஒரு வரி குறுகிய செய்ய 373 00:27:36,000 --> 00:27:42,000 நீங்கள் வரி உடனடியாக இந்த தொடர்ந்து அந்த அறிவிப்பு 374 00:27:42,000 --> 00:27:53,000 ஒரு அளவு + + நீ ஒன்றாக்க இந்த நிலைப்பாட்டின், அளவு +. 375 00:27:53,000 --> 00:27:58,000 கீழே இங்கே இப்போது, நாங்கள் வழக்கு வேண்டும் 376 00:27:58,000 --> 00:28:01,000 அங்கு நாங்கள், போதுமான நினைவகம் இல்லை 377 00:28:01,000 --> 00:28:05,000 எனவே 2 எங்கள் திறனை அதிகரித்து வருகின்றன. 378 00:28:05,000 --> 00:28:09,000 , நான் நீங்கள் இங்கே அதே பிரச்சினை என்று நினைக்கிறேன், ஆனால் நாம் இப்போது அதை தவிர்க்க முடியாது 379 00:28:09,000 --> 00:28:13,000 உங்கள் திறனை அதிகரிக்க செயலிழக்கும் போது, 380 00:28:13,000 --> 00:28:18,000 பிறகு மீண்டும் 2 உங்கள் திறனை குறைக்க வேண்டும் போகிறோம். 381 00:28:18,000 --> 00:28:24,000 மற்றொரு குறுகிய குறிப்பு நீங்கள் என்ன செய்ய முடியும் போல் இருக்கிறது + =, 382 00:28:24,000 --> 00:28:30,000 நீங்கள் << = செய்ய முடியும். 383 00:28:30,000 --> 00:28:43,000 சமமாக முன் கிட்டத்தட்ட எதையும் போகலாம் + =, | =, & =, << =. 384 00:28:43,000 --> 00:28:52,000 கரி * புதிய நினைவகம் நமது புதிய தொகுதி ஆகும். 385 00:28:52,000 --> 00:28:55,000 ஓ, இங்கு. 386 00:28:55,000 --> 00:29:02,000 >> மக்கள் நினைவகம் நமது புதிய தொகுதி வகை பற்றி என்ன நினைக்கிறீர்கள்? 387 00:29:02,000 --> 00:29:06,000 [மாணவர்] இது எரிப்பதை ** இருக்க வேண்டும். 388 00:29:06,000 --> 00:29:12,000 இங்கு எங்கள் struct மீண்டும் நினைத்து, 389 00:29:12,000 --> 00:29:14,000 சரங்களை நாம் மறு ஒதுக்கீடு செய்வதையும் என்ன ஆகும். 390 00:29:14,000 --> 00:29:21,000 நாம் வரிசையில் உறுப்புகள் ஒரு முழு புதிய டைனமிக் சேமிப்பு செய்கிறீர்கள். 391 00:29:21,000 --> 00:29:25,000 என்ன உங்கள் சரங்களை செய்ய ஒதுக்க வேண்டும் போகிறோம், நாம் இப்போது mallocing என்ன ஆகும் 392 00:29:25,000 --> 00:29:30,000 அதனால் புதிய ஒரு எரிப்பதை ** போகிறது. 393 00:29:30,000 --> 00:29:34,000 அது சரங்களை ஒரு வரிசை இருக்கும் நடக்கிறது. 394 00:29:34,000 --> 00:29:38,000 நாம் தவறான திரும்ப போகிறோம் கீழ் வழக்கு என்ன ஆகும்? 395 00:29:38,000 --> 00:29:41,000 [மாணவர்] நாம் எரிப்பதை * செய்து? 396 00:29:41,000 --> 00:29:44,000 [ராப் பி] ஆமாம், நல்ல அழைப்பு. 397 00:29:44,000 --> 00:29:46,000 [மாணவர்] அது என்ன? 398 00:29:46,000 --> 00:29:49,000 [ராப் பி] நாங்கள் இல்லை, ஏனெனில் எரிப்பதை * அளவை செய்ய நீண்ட 399 00:29:49,000 --> 00:29:53,000 sizeof (கரி) 1 ஏனெனில் இந்த உண்மையில் ஒரு மிக பெரிய பிரச்சினை என்று. 400 00:29:53,000 --> 00:29:55,000 Sizeof எரிப்பதை *, 4 போகிறது 401 00:29:55,000 --> 00:29:58,000 எனவே நீங்கள் ints கையாளும் போது பல முறை, 402 00:29:58,000 --> 00:30:01,000 நீங்கள் அதனை பெற ஏனெனில் எண்ணாக * ஒரு எண்ணாக மற்றும் அளவு அளவு 403 00:30:01,000 --> 00:30:04,000 ஒரு 32 பிட் கணினியில் தான் இருக்க போகிறோம். 404 00:30:04,000 --> 00:30:09,000 ஆனால் இங்கே, sizeof (கரி) மற்றும் sizeof (எரிப்பதை *) இப்போது தான் இருக்க போகிறோம். 405 00:30:09,000 --> 00:30:15,000 >> நாம் தவறான திரும்பி அங்கு சூழ்நிலை என்ன? 406 00:30:15,000 --> 00:30:17,000 [மாணவர்] புதிய பூஜ்ய உள்ளது. 407 00:30:17,000 --> 00:30:23,000 புதிய பூஜ்ய இருந்தால் சரி, நாம், தவறான திரும்ப 408 00:30:23,000 --> 00:30:34,000 நான் கீழே தூக்கி போகிறேன் இங்கே- 409 00:30:34,000 --> 00:30:37,000 [மாணவர்] [செவிக்கு புலப்படாமல்] 410 00:30:37,000 --> 00:30:39,000 [ராப் பி] சரி, இந்த நன்றாக. 411 00:30:39,000 --> 00:30:46,000 நீங்கள் 2 முறை திறன் அல்லது திறன் மாற்றத்தை 1 பின்னர் தான் இங்கே அல்லது அதை கீழே அமைக்க முடியும். 412 00:30:46,000 --> 00:30:52,000 நாம் அது நாம் அதை செய்கிறேன். 413 00:30:52,000 --> 00:30:56,000 திறன் >> = 1. 414 00:30:56,000 --> 00:31:08,000 நீங்கள் 1 இடத்தை இழப்பது பற்றி கவலைப்பட வேண்டும் 415 00:31:08,000 --> 00:31:12,000 நீங்கள் 1 மாற்றப்படும் விட்டு ஏனெனில், அவ்வாறு 1 இடத்தில், அவசியம் 0 416 00:31:12,000 --> 00:31:16,000 எனவே சரியான 1 மாற்றுவதால், நீங்கள் இன்னும் நன்றாக இருக்க போகிறோம். 417 00:31:16,000 --> 00:31:19,000 [மாணவர்] நீங்கள் திரும்ப முன் அதை செய்ய வேண்டுமா? 418 00:31:19,000 --> 00:31:29,000 [ராப் பி] ஆமாம், இந்த எந்தவிதமான அர்த்தமும். 419 00:31:29,000 --> 00:31:36,000 >> நாம் இறுதியில் உண்மையான திரும்பி முடிவுக்கு போகிறாய் இப்போது அனுமானிக்கலாம். 420 00:31:36,000 --> 00:31:39,000 நாம் இந்த memmoves செய்ய போகிறோம் வழி, 421 00:31:39,000 --> 00:31:45,000 நாம் அவர்களிடமிருந்து எப்படி கவனமாக இருக்க வேண்டும். 422 00:31:45,000 --> 00:31:50,000 யாரையும் நாம் செய்ய எப்படி எந்த பரிந்துரைகள் உள்ளதா? 423 00:32:17,000 --> 00:32:21,000 இங்கே நம் தொடக்கத்தில் தான். 424 00:32:21,000 --> 00:32:28,000 தவிர்க்க முடியாமல், நாம் மீண்டும் ஆரம்பத்தில் தொடங்க வேண்டும் 425 00:32:28,000 --> 00:32:35,000 அங்கு இருந்து மற்றும் நகல் விஷயங்கள், 1, 3, 4, 2. 426 00:32:35,000 --> 00:32:41,000 நீங்கள் எப்படி என்று தெரியுமா? 427 00:32:41,000 --> 00:32:52,000 முதல், நான் மீண்டும் memmove man பக்கத்தை பார்க்க வேண்டும். 428 00:32:52,000 --> 00:32:57,000 Memmove, வாதங்கள் வரிசை எப்போதும் முக்கியமானது. 429 00:32:57,000 --> 00:33:01,000 நாம் மூல இரண்டாவது, அளவு மூன்றாவது, முதல் எங்கள் இலக்கு வேண்டும். 430 00:33:01,000 --> 00:33:06,000 மூல மற்றும் இலக்கு தலைகீழாக எந்த செயல்பாடுகளை நிறைய உள்ளன. 431 00:33:06,000 --> 00:33:11,000 இலக்கு, மூல சற்றே நிலையான இருக்கிறது. 432 00:33:17,000 --> 00:33:21,000 இந்த நடவடிக்கை, அது என்ன திரும்பி வருகிறார்? 433 00:33:21,000 --> 00:33:27,000 அதை நீங்கள் விரும்பலாம் எந்த காரணத்திற்காகவும், இலக்கு ஒரு சுட்டிக்காட்டி கொடுக்கிறது. 434 00:33:27,000 --> 00:33:32,000 நான் அதை படிக்க முடியும் படம், ஆனால் நாம் நம் இலக்கை நோக்கி நகர்த்த வேண்டும். 435 00:33:32,000 --> 00:33:35,000 >> நம் இலக்கு என்ன செய்ய போகிறார்கள்? 436 00:33:35,000 --> 00:33:37,000 [மாணவர்] புதிய. 437 00:33:37,000 --> 00:33:39,000 [ராப் பி] ஆமாம், எங்கே நாம் இருந்து நகல் எடுக்க? 438 00:33:39,000 --> 00:33:43,000 நாம் நகலெடுக்க முதல் விஷயம் இந்த 1, 3, 4. 439 00:33:43,000 --> 00:33:50,000 , 4 3 இந்த 1 என்ன. 440 00:33:50,000 --> 00:33:55,000 இந்த 1 முகவரி என்ன? 441 00:33:55,000 --> 00:33:58,000 அந்த 1 முகவரி என்ன? 442 00:33:58,000 --> 00:34:01,000 [மாணவர்] [செவிக்கு புலப்படாமல்] 443 00:34:01,000 --> 00:34:03,000 [ராப் பி] தலைமை + முதல் உறுப்பு முகவரி. 444 00:34:03,000 --> 00:34:05,000 எப்படி நாம் வரிசையில் முதல் உறுப்பு கிடைக்கும்? 445 00:34:05,000 --> 00:34:10,000 [மாணவர்] வரிசையில். 446 00:34:10,000 --> 00:34:15,000 [ராப் பி] ஆமாம், q.strings. 447 00:34:15,000 --> 00:34:20,000 நினைவில் வைத்து கொள்ளுங்கள், இங்கே, நம் தலையில் 1. 448 00:34:20,000 --> 00:34:24,000 அது தை. நான் அதை தான் மாயமாக- 449 00:34:24,000 --> 00:34:29,000 இங்கே, நம் தலையில் 1. நான் என் நிறம் மாற்ற போகிறேன். 450 00:34:29,000 --> 00:34:36,000 இங்கு சரங்களை உள்ளது. 451 00:34:36,000 --> 00:34:41,000 நாம் இங்கு செய்தது போல், இந்த, நாம் அதை எழுத முடியும் 452 00:34:41,000 --> 00:34:43,000 உடன் தலையை + q.strings. 453 00:34:43,000 --> 00:34:51,000 நிறைய பேர் அதை எழுத & q.strings [தலைவர்]. 454 00:34:51,000 --> 00:34:55,000 இந்த உண்மையில் எந்த குறைவான திறன் அல்ல. 455 00:34:55,000 --> 00:34:58,000 நீங்கள் அதை dereferencing பின்னர் முகவரி கிடைக்கும் என நீங்கள், அது நினைக்கலாம் 456 00:34:58,000 --> 00:35:04,000 ஆனால் தொகுப்பி q.strings + தலை, எப்படியும் நாம் என்ன அதை மொழிபெயர்க்க வேண்டும். 457 00:35:04,000 --> 00:35:06,000 நீங்கள் அதை நினைக்க வேண்டும் அல்லது வழி. 458 00:35:06,000 --> 00:35:11,000 >> மற்றும் எத்தனை பைட்டுகள் நாம் நகலெடுக்க வேண்டுமா? 459 00:35:11,000 --> 00:35:15,000 [மாணவர்] கொள்ளளவு - தலைவர். 460 00:35:15,000 --> 00:35:18,000 திறன் - தலைவர். 461 00:35:18,000 --> 00:35:21,000 பின்னர் நீங்கள் எப்போதும் ஒரு எடுத்துக்காட்டாக அவுட் எழுத முடியும் 462 00:35:21,000 --> 00:35:23,000 அது சரி என்றால், கண்டுபிடிக்க. 463 00:35:23,000 --> 00:35:26,000 [மாணவர்] பின்னர் 2 வகுக்க வேண்டும். 464 00:35:26,000 --> 00:35:30,000 சரி, நான் நாம் அளவு பயன்படுத்த முடியும் என நினைக்கிறேன். 465 00:35:30,000 --> 00:35:35,000 நாம் இன்னும் அளவு இல்லை என்ற- 466 00:35:35,000 --> 00:35:39,000 அளவு பயன்படுத்தி, நாம் 4 சமமாக அளவு உள்ளது. 467 00:35:39,000 --> 00:35:42,000 எங்கள் அளவு 4. எங்கள் தலைவர் 1. 468 00:35:42,000 --> 00:35:46,000 நாம் இந்த 3 கூறுகளை நகலெடுக்க வேண்டும். 469 00:35:46,000 --> 00:35:54,000 அந்த நல்லறிவு அந்த அளவு சோதனை தான் - தலை சரியாக 3. 470 00:35:54,000 --> 00:35:58,000 நாம் முன்பே சொன்னது போல, மேலும், இங்கே வந்து 471 00:35:58,000 --> 00:36:00,000 நாம் கொள்ளளவு பயன்படுத்தப்படும் என்றால், நாம் 2 பிரிக்க வேண்டும் என்று 472 00:36:00,000 --> 00:36:04,000 நாம் ஏற்கனவே நம் திறன் வளர்ந்துவிட்டாய் ஏனெனில், அதனால், அதற்கு பதிலாக, நாம் அளவு பயன்படுத்த போகிறோம். 473 00:36:11,000 --> 00:36:13,000 அந்த பிரதிகள் பகுதி. 474 00:36:13,000 --> 00:36:18,000 இப்போது, நாம் மற்ற பகுதி, தொடக்கத்தில் இடது என்று பகுதியை நகலெடுத்து வேண்டும். 475 00:36:18,000 --> 00:36:28,000 >> என்ன நிலைக்கு memmove போகிறது? 476 00:36:28,000 --> 00:36:32,000 [மாணவர்] பிளஸ் அளவு - தலைவர். 477 00:36:32,000 --> 00:36:38,000 ஆம், நாங்கள் ஏற்கனவே அளவு நகலெடுக்கப்பட்ட - தலைவர் பைட்டுகள், 478 00:36:38,000 --> 00:36:43,000 அதனால் நாம் மீதமுள்ள பைட்டுகள் நகலெடுக்க வேண்டும், அங்கு புதிய 479 00:36:43,000 --> 00:36:48,000 பின்னர் அளவு குறைய, நன்றாக, பைட்டுகள் எண்ணிக்கையை நாங்கள் ஏற்கனவே உள்ளே நகலெடுக்க 480 00:36:48,000 --> 00:36:52,000 பின்னர் அங்கு நாம் இருந்து நகல் எடுக்க? 481 00:36:52,000 --> 00:36:54,000 [மாணவர்] Q.strings [0]. 482 00:36:54,000 --> 00:36:56,000 [ராப் பி] ஆமாம், q.strings. 483 00:36:56,000 --> 00:37:02,000 நாம் ஒன்று செய்ய & q.strings [0]. முடியும் 484 00:37:02,000 --> 00:37:05,000 இந்த விட குறைவாகவே உள்ளது. 485 00:37:05,000 --> 00:37:14,000 இது 0 ஆக போகிறது என்றால், நீங்கள் q.strings பார்க்க வீழுவேன். 486 00:37:14,000 --> 00:37:16,000 நாம் இருந்து நகல் நீங்கள் எங்கே என்று. 487 00:37:16,000 --> 00:37:18,000 நாம் நகலெடுக்க எவ்வளவு பைட்டுகள் விட்டு? >> [மாணவர்] 10. 488 00:37:18,000 --> 00:37:20,000 சரி. 489 00:37:20,000 --> 00:37:25,000 [மாணவர்] நாங்கள் 5 பெருக்கி வேண்டும் - 10 மடங்கு பைட்டுகள் அல்லது ஏதாவது அளவு? 490 00:37:25,000 --> 00:37:30,000 சரி, இந்த இடத்தில் என்ன சரியாக நாம் நகல் எடுக்க உள்ளது? 491 00:37:30,000 --> 00:37:32,000 [மாணவர்] [செவிக்கு புலப்படாமல்] 492 00:37:32,000 --> 00:37:34,000 நாம் நகல் நீங்கள் தான் வகை என்ன? 493 00:37:34,000 --> 00:37:36,000 [மாணவர்] [செவிக்கு புலப்படாமல்] 494 00:37:36,000 --> 00:37:41,000 இருந்து வருகிறார்கள் yeah, கரி * கள் நாம் நகல் என்று மிக, எங்களுக்கு தெரியாது. 495 00:37:41,000 --> 00:37:47,000 சரி, அவர்கள் சுட்டி நீங்கள் எங்கே, சரங்களை போல, நாம் வரிசை மீது அது தள்ளும் முடிவுக்கு 496 00:37:47,000 --> 00:37:49,000 அல்லது வரிசை மீது enqueuing. 497 00:37:49,000 --> 00:37:51,000 இருந்து வருகிறார்கள், நாம் ஒன்றும் தெரியவில்லை. 498 00:37:51,000 --> 00:37:56,000 நாங்கள் எரிப்பதை * கள் தங்களை கண்காணிக்க வேண்டும். 499 00:37:56,000 --> 00:38:00,000 தலைவர் பைட்டுகள் - நாம் அளவு நகலெடுக்க வேண்டாம். 500 00:38:00,000 --> 00:38:03,000 தலைவர் எரிப்பதை * கள், - நாம் அளவு நகலெடுக்க வேண்டும் 501 00:38:03,000 --> 00:38:11,000 நாம் sizeof (எரிப்பதை *) இந்த பெருக்கி கொள்ள போகிறோம். 502 00:38:11,000 --> 00:38:17,000 அதே கீழே இங்கே, தலைவர் * sizeof (எரிப்பதை *). 503 00:38:17,000 --> 00:38:24,000 >> [மாணவர்] என்ன [செவிக்கு புலப்படாமல்]? 504 00:38:24,000 --> 00:38:26,000 இங்கே இது சரியான? 505 00:38:26,000 --> 00:38:28,000 [மாணவர்] இல்லை, என்று கீழே, அளவு - தலைவர். 506 00:38:28,000 --> 00:38:30,000 [ராப் பி] இங்கே இந்த உரிமை? 507 00:38:30,000 --> 00:38:32,000 சுட்டிக்காட்டி கணித. 508 00:38:32,000 --> 00:38:35,000 சுட்டிக்காட்டி கணித வேலை நடக்கிறது எப்படி 509 00:38:35,000 --> 00:38:40,000 அது தானாகவே நாம் கையாளும் என்று வகை அளவு மூலம் பன்மடங்காக்குகின்றது. 510 00:38:40,000 --> 00:38:46,000 இப்போது, இங்கு போன்ற புதிய + (அளவு - தலைவர்) 511 00:38:46,000 --> 00:38:56,000 & புதிய [- தலை அளவு] சரியாக சமமானதாகும் 512 00:38:56,000 --> 00:39:00,000 நாம் அது, சரியாக வேலை எதிர்பார்க்க வரை 513 00:39:00,000 --> 00:39:04,000 நாம் ஒரு முழு எண்ணாக வரிசை கையாள்வதில் என்றால் முதல், நாம் மூலம் எண்ணாக-குறியீட்டு இல்லை 514 00:39:04,000 --> 00:39:07,000 இந்த அல்லது 5 அளவு மற்றும் நீ 4 வது உறுப்பு விரும்பினால், நாம் குறியீட்டு 515 00:39:07,000 --> 00:39:10,000 int வரிசை [4]. 516 00:39:10,000 --> 00:39:14,000 நீங்கள் don't-[4] எண்ணாக கொண்ட * அளவு. 517 00:39:14,000 --> 00:39:21,000 இந்த வழக்கை தானாக கையாளுகிறது, மற்றும் 518 00:39:21,000 --> 00:39:29,000 உண்மையில் ஆகும், அதனால் பிராக்கெட் வாக்கிய அமைப்பு 519 00:39:29,000 --> 00:39:34,000 நான் விரைவில் நீங்கள் தொகுக்க இந்த மாற்றப்படுகிறது போகிறது. 520 00:39:34,000 --> 00:39:38,000 என்று நீங்கள் கவனமாக இருக்க வேண்டும் விஷயம் 521 00:39:38,000 --> 00:39:42,000 நீங்கள் அளவு சேர்த்து போது - தலைவர் 522 00:39:42,000 --> 00:39:45,000 நீங்கள் ஒரு பைட் இல்லை சேர்க்கும். 523 00:39:45,000 --> 00:39:53,000 நீங்கள் ஒரு பைட்டுகள் அல்லது என்ன இருக்க முடியும், ஒரு எரிப்பதை * சேர்க்கும். 524 00:39:53,000 --> 00:39:56,000 >> மற்ற கேள்விகள்? 525 00:39:56,000 --> 00:40:04,000 சரி, dequeue எளிதாக இருக்கும். 526 00:40:04,000 --> 00:40:11,000 நான் செயல்படுத்த ஒரு நிமிடம் கொடுப்பேன். 527 00:40:11,000 --> 00:40:18,000 ஓ, நான் இதே நிலைமை தான் நினைக்கிறேன் உள்ளூரில் 528 00:40:18,000 --> 00:40:21,000 என்ன என்கியூ வழக்கு, நாம் பூஜ்ஜிய enqueuing என்றால், 529 00:40:21,000 --> 00:40:24,000 ஒருவேளை நாம் கையாள வேண்டும், நாம் என்ன செய்ய. 530 00:40:24,000 --> 00:40:27,000 நாம் இங்கே மீண்டும் அதை செய்ய, ஆனால் நமது ஸ்டேக் வழக்கு அதே மாட்டேன். 531 00:40:27,000 --> 00:40:34,000 நாம் பூஜ்ய என்கியூ என்றால், நாம் அதை புறக்கணிக்க வேண்டும். 532 00:40:34,000 --> 00:40:40,000 யாரையும் நான் மேலே சில குறியீடு வேண்டும்? 533 00:40:40,000 --> 00:40:45,000 [மாணவர்] நான் dequeue வேண்டும். 534 00:40:45,000 --> 00:40:56,000 பதிப்பு 2 என, பரவாயில்லை. 535 00:40:56,000 --> 00:40:59,000 நீங்கள் விளக்க வேண்டும்? 536 00:40:59,000 --> 00:41:01,000 [மாணவர்] முதலில், நீங்கள் வரிசையில் ஏதோ உறுதி 537 00:41:01,000 --> 00:41:07,000 மற்றும் அளவு 1 கீழே என்று. 538 00:41:07,000 --> 00:41:11,000 நீங்கள் அதை செய்ய வேண்டும், பிறகு தலையை திருப்பி 539 00:41:11,000 --> 00:41:13,000 பின்னர் 1 வரை தலையை நகர்த்த. 540 00:41:13,000 --> 00:41:19,000 சரி, நாம் கருத்தில் கொள்ள வேண்டும் ஒரு மூலையில் வழக்கு உள்ளது. Yeah. 541 00:41:19,000 --> 00:41:24,000 [மாணவர்], உங்கள் தலைவர் கடந்த உறுப்பு உள்ளது என்றால், 542 00:41:24,000 --> 00:41:26,000 நீங்கள் தலையில் வரிசைக்கு வெளியே சுட்டிக்காட்ட விரும்பவில்லை. 543 00:41:26,000 --> 00:41:29,000 >> சரி, இவ்வளவு விரைவில் தலைவராக, எங்கள் அணி இறுதியில் பலி 544 00:41:29,000 --> 00:41:35,000 நாம் dequeue போது, எங்கள் தலையில் 0 திரும்பி modded. 545 00:41:35,000 --> 00:41:40,000 துரதிருஷ்டவசமாக, நாம் ஒரு படி அதை செய்ய முடியாது. 546 00:41:40,000 --> 00:41:44,000 நான் அநேகமாக அது சரி என்று வழி நினைக்கிறேன் 547 00:41:44,000 --> 00:41:52,000 இந்த, நாம் திரும்பி என்ன, ஒரு எரிப்பதை * போகிறது 548 00:41:52,000 --> 00:41:55,000 உங்கள் மாறி பெயர் இருக்க விரும்புகிறது என்ன. 549 00:41:55,000 --> 00:42:02,000 நாம் நமது திறன் தலையில் mod வேண்டும் 550 00:42:02,000 --> 00:42:10,000 பின்னர் Ret திருப்பி. 551 00:42:10,000 --> 00:42:14,000 இங்கே நிறைய பேர் அவர்கள்-கூடும் 552 00:42:14,000 --> 00:42:19,000 இந்த you'll விஷயத்தில் தான் மக்கள் அதை பார்க்க தலையை 553 00:42:19,000 --> 00:42:29,000 திறன் அதிகமாக இருக்கும், தலை செய்ய - திறன். 554 00:42:29,000 --> 00:42:36,000 என்று தான் மோட் என்ன சுற்றி வேலை. 555 00:42:36,000 --> 00:42:41,000 தலைவர் மோட் = திறன் மிகவும் தூய்மையான உள்ளது 556 00:42:41,000 --> 00:42:51,000 திறன் -. சுற்றி திறன் தலையை விட தலை சிறந்த என்றால் விட மடிப்பை பற்றி 557 00:42:51,000 --> 00:42:56,000 >> கேள்விகள்? 558 00:42:56,000 --> 00:43:02,000 சரி, நாம் விட்டு சென்ற விஷயம் நம் இணைக்கப்பட்ட பட்டியலில் உள்ளது. 559 00:43:02,000 --> 00:43:07,000 நீங்கள் செய்தால் நீங்கள் இணைக்கப்பட்ட பட்டியலில் நடத்தை சில பயன்படுத்தப்படுகிறது 560 00:43:07,000 --> 00:43:11,000 நீங்கள் ஒரு ஹாஷ் அட்டவணை செய்தால், உங்கள் ஹெஷ் அட்டவணைகளில் பட்டியல்கள் இணைக்கப்பட்ட. 561 00:43:11,000 --> 00:43:15,000 நான் பலமாக ஒரு ஹாஷ் அட்டவணை செய்து பரிந்துரைக்கிறோம். 562 00:43:15,000 --> 00:43:17,000 நீங்கள் ஏற்கனவே, ஒரு trie செய்ய 563 00:43:17,000 --> 00:43:23,000 ஆனால் முயற்சிகளின் மிகவும் கடினமாக இருக்கிறது. 564 00:43:23,000 --> 00:43:27,000 கோட்பாடு, அவர்கள் தொலைத்தொடுகோட்டு நன்றாக இருக்கும். 565 00:43:27,000 --> 00:43:30,000 ஆனால், பெரிய போர்டு இருக்கும் 566 00:43:30,000 --> 00:43:35,000 சிறந்த ஒருபோதும் செய்ய முயற்சித்தால், அவர்கள் இன்னும் நினைவகம் எடுத்து. 567 00:43:35,000 --> 00:43:43,000 எல்லாவற்றையும் பற்றி மேலும் வேலை மோசமாக இருப்பது முடிவடைகிறது முயற்சிக்கிறது. 568 00:43:43,000 --> 00:43:49,000 அதை டேவிட் Malan தீர்வு எப்போதும் என்ன ஆகும் 569 00:43:49,000 --> 00:43:56,000 அவர் எப்போதும் பதவிகளை தனது trie தீர்வு, மற்றும் அவர் தற்போது எங்கே நாம் பார்ப்போம். 570 00:43:56,000 --> 00:44:00,000 அவர் டேவிட் ஜே, கீழ் என்ன? 571 00:44:00,000 --> 00:44:06,000 அவர் # 18 தான்,, என்று மோசமாக மோசமாக இல்லை என்று 572 00:44:06,000 --> 00:44:09,000 மற்றும் சிறந்த ஒன்றாக இருக்க போகிறது என்று நீங்கள் நினைக்கலாம் முயற்சி 573 00:44:09,000 --> 00:44:17,000 அல்லது சிறந்த ஒரு trie ஒரு முயற்சி. 574 00:44:17,000 --> 00:44:23,000 அது அவரது உண்மையான தீர்வு கூட இல்லை? 575 00:44:23,000 --> 00:44:29,000 Trie தீர்வுகளை ரேம் பயன்பாடு இந்த வரம்பில் இன்னும் இருக்கும் போல் நான் உணர்கிறேன். 576 00:44:29,000 --> 00:44:33,000 >> மிகவும் மேலே கீழே போக, மற்றும் ரேம் பயன்பாடு ஒற்றை இலக்கங்கள் உள்ளது. 577 00:44:33,000 --> 00:44:36,000 கீழே நோக்கி கீழே சென்று, பிறகு நீங்கள் முயற்சி தொடங்களாம் 578 00:44:36,000 --> 00:44:41,000 நீங்கள் முற்றிலும் மகத்தான ரேம் பயன்பாடு இங்கு, 579 00:44:41,000 --> 00:44:45,000 மற்றும் முயற்சிகளின் மிகவும் கடினமாக இருக்கிறது. 580 00:44:45,000 --> 00:44:53,000 முழுமையாக அதை ஆனால் ஒரு கல்வி அனுபவம் மதிப்புள்ள ஒரு செய்தால். 581 00:44:53,000 --> 00:44:56,000 கடந்த விஷயம், நம் தொடர்புடைய பட்டியல் 582 00:44:56,000 --> 00:45:04,000 இந்த மூன்று விஷயங்களை, அடுக்குகள், வரிசைகளில், மற்றும் தொடர்புடைய பட்டியல்கள், 583 00:45:04,000 --> 00:45:09,000 நீங்கள் எப்போதும் கணினி அறிவியல் செய்ய எந்த எதிர்கால விஷயம் 584 00:45:09,000 --> 00:45:12,000 இந்த விஷயங்களை அறிந்திருத்தல் வேண்டும் ஏற்றுக்கொள்ளும். 585 00:45:12,000 --> 00:45:19,000 அவர்கள் எல்லாம் வெறும் மிகவும் அடிப்படை ஆகும். 586 00:45:19,000 --> 00:45:25,000 >> பட்டியல்கள் இணைக்கப்பட்ட, மற்றும் இங்கே நாம் ஒரு தனித்தனி இணைக்கப்பட்ட பட்டியலில் எங்கள் செயல்படுத்த போகிறது வேண்டும். 587 00:45:25,000 --> 00:45:34,000 தனித்தனி என்ன தொடர்பு இல்லை என இரட்டை இணைக்கப்பட்ட எதிராக என்ன? ஆம். 588 00:45:34,000 --> 00:45:37,000 [மாணவர்] இது மட்டுமே, அடுத்த சுட்டிக்காட்டி விட சுட்டிகள் சுட்டி 589 00:45:37,000 --> 00:45:39,000 அது அது பின்னர் ஒரு முந்திய ஒரு மாதிரி. 590 00:45:39,000 --> 00:45:44,000 சரி, அப்படி படம் வடிவமைப்பில், நான் என்ன செய்ய? 591 00:45:44,000 --> 00:45:48,000 நான் இரண்டு விஷயங்களை கொண்டுள்ளன. நான் படம் மற்றும் படம். 592 00:45:48,000 --> 00:45:51,000 படம் வடிவமைப்பில், நமது தனித்தனி இணைக்கப்பட்ட பட்டியல்கள், 593 00:45:51,000 --> 00:45:57,000 தவிர்க்க முடியாமல், நாம், நமது பட்டியலில் தலையில் சுட்டிக்காட்டி சில விதமான 594 00:45:57,000 --> 00:46:02,000 பின்னர் எங்கள் பட்டியலில் உள்ள, நாம் தான், சுட்டிகள் வேண்டும் 595 00:46:02,000 --> 00:46:05,000 ஒருவேளை இந்த புள்ளிகள் பூஜ்ய வேண்டும். 596 00:46:05,000 --> 00:46:08,000 அது ஒரு தனித்தனி இணைக்கப்பட்ட பட்டியலில் உங்கள் பொதுவான சித்திரம் இருக்க போகிறது. 597 00:46:08,000 --> 00:46:14,000 ஒரு இரட்டை இணைக்கப்பட்ட பட்டியலில், நீங்கள் பின்னோக்கி செல்ல முடியும். 598 00:46:14,000 --> 00:46:19,000 நான் உன்னை பட்டியலில் எந்த முனை கொடுக்க வேண்டும் என்றால், நீங்கள் அவசியம் பெற முடியும் 599 00:46:19,000 --> 00:46:23,000 மற்ற முனை பட்டியலில் அது ஒரு இரட்டை இணைக்கப்பட்ட பட்டியலில் இருந்தால். 600 00:46:23,000 --> 00:46:27,000 ஆனால் நான் உங்களுக்கு பட்டியலில் மூன்றாவது முனை, மற்றும் அது ஒரு தனித்தனி இணைக்கப்பட்ட பட்டியலில் இருந்தால், 601 00:46:27,000 --> 00:46:30,000 நீ முதல் மற்றும் இரண்டாவது முனைகளில் பெற போகிறோம். இல்லை 602 00:46:30,000 --> 00:46:34,000 மற்றும் பயன்கள் மற்றும் detriments, மற்றும் ஒரு தெளிவான ஒரு உள்ளது 603 00:46:34,000 --> 00:46:42,000 நீங்கள் இன்னும் அளவு எடுத்து, மற்றும் இந்த விஷயங்கள் இப்போது சுட்டி எங்கே கண்காணிப்பதற்கான வேண்டும். 604 00:46:42,000 --> 00:46:49,000 ஆனால் நாம் மட்டும் தனித்தனி இணைக்கப்பட்ட கவலை. 605 00:46:49,000 --> 00:46:53,000 >> நாம் நடைமுறைப்படுத்த வேண்டும் என்று ஒரு சில விஷயங்கள். 606 00:46:53,000 --> 00:47:00,000 உங்கள் typedef struct முனை, int நான்: struct முனை * அடுத்த; முனை. 607 00:47:00,000 --> 00:47:09,000 அந்த typedef உங்கள் மனதில் கொண்டு எரித்து. 608 00:47:09,000 --> 00:47:14,000 வினாடி வினா 1, ஒரு இணைக்கப்பட்ட பட்டியலில் முனை ஒரு typedef கொடுக்க விரும்புகிறேன் 609 00:47:14,000 --> 00:47:18,000 நீங்கள் உடனடியாக அந்த கீழே எழுதுவதால் இப்பெயர் முடியும் 610 00:47:18,000 --> 00:47:22,000 அதை பற்றி சிந்திக்காமல். 611 00:47:22,000 --> 00:47:27,000 நான் ஒரு ஜோடி கேள்விகள் நினைக்கிறேன், நாம் ஏன் இங்கு struct வேண்டும்? 612 00:47:27,000 --> 00:47:32,000 நாம் ஏன் முனை * சொல்ல முடியாது? 613 00:47:32,000 --> 00:47:35,000 [மாணவர்] [செவிக்கு புலப்படாமல்] 614 00:47:35,000 --> 00:47:38,000 Yeah. 615 00:47:38,000 --> 00:47:44,000 ஒரு விஷயத்தை ஒரு முனை வரையறுக்கிறது என்று மட்டும் தான் 616 00:47:44,000 --> 00:47:47,000 தன்னை typedef உள்ளது. 617 00:47:47,000 --> 00:47:55,000 ஆனால் இந்த புள்ளி, நாம் இந்த struct முனை வரையறை மூலம் அலசல் வகையான போது, 618 00:47:55,000 --> 00:48:01,000 நாம், typedef முடிக்கவில்லை எனவே இருந்து, இன்னும் நம் typedef முடிக்கவில்லை 619 00:48:01,000 --> 00:48:05,000 கணு இல்லை. 620 00:48:05,000 --> 00:48:12,000 ஆனால் struct முனை இல்லை, இந்த இங்கே உள்ள, 621 00:48:12,000 --> 00:48:14,000 இந்த வேறு எதையும் என்று. 622 00:48:14,000 --> 00:48:16,000 இந்த n என்று. 623 00:48:16,000 --> 00:48:19,000 அது இணைக்கப்பட்ட பட்டியலில் முனை என அழைக்கப்படும். 624 00:48:19,000 --> 00:48:21,000 இது ஒன்றும் என்று. 625 00:48:21,000 --> 00:48:26,000 ஆனால் இந்த struct முனையும் இந்த struct முனையும் அதே விஷயம் வேண்டும். 626 00:48:26,000 --> 00:48:29,000 இந்த இங்கே இருக்க வேண்டும் என்று என்ன, 627 00:48:29,000 --> 00:48:32,000 அதனால் அந்த கேள்வி இரண்டாவது கட்டத்தில் பதில் 628 00:48:32,000 --> 00:48:37,000 ஏன், ஒரு நீங்கள் structs மற்றும் structs என்ற typedefs பார்க்கும் போது முறை நிறைய, அது 629 00:48:37,000 --> 00:48:42,000 நீங்கள் typedef struct பார்க்கலாம், எங்கு, அநாமதேய structs பார்க்கலாம் 630 00:48:42,000 --> 00:48:47,000 struct, அகராதி, அல்லது அதை செயல்படுத்த. 631 00:48:47,000 --> 00:48:51,000 >> ஏன் இங்கே நாம் முனை சொல்ல வேண்டும்? 632 00:48:51,000 --> 00:48:54,000 ஏன் அது ஒரு அநாமதேய struct இருக்க முடியாது? 633 00:48:54,000 --> 00:48:56,000 இது கிட்டத்தட்ட அதே பதில் தான். 634 00:48:56,000 --> 00:48:58,000 [மாணவர்] நீங்கள் struct இதை குறிக்க வேண்டும். 635 00:48:58,000 --> 00:49:04,000 சரி, struct உள்ள, நீங்கள் struct தன்னை பார்க்கவும் வேண்டும். 636 00:49:04,000 --> 00:49:10,000 நீங்கள் struct ஒரு பெயரை என்றால் அது ஒரு அநாமதேய struct என்றால், நீங்கள் அதை பார்க்கவும் முடியாது. 637 00:49:10,000 --> 00:49:17,000 கடந்த ஆனால் குறைந்த இந்த அனைத்து வேண்டும் சற்றே நேரடியான இல்லை, 638 00:49:17,000 --> 00:49:20,000 இந்த எழுதிக்கொடுத்து என்றால் அவர்கள் நீங்கள் உணர உதவ வேண்டும் 639 00:49:20,000 --> 00:49:24,000 விஷயங்கள் இந்த வகையான போடுவது என்றால் நீங்கள் தவறு செய்கிறீர்கள் என்று. 640 00:49:24,000 --> 00:49:28,000 குறைந்தது கடந்த ஆனால், ஏன் இந்த struct முனை * இருக்க வேண்டும்? 641 00:49:28,000 --> 00:49:34,000 ஏன் அது அடுத்த முனையில் struct முடியாது? 642 00:49:34,000 --> 00:49:37,000 அடுத்த struct வேண்டும் [மாணவர்] சுட்டி. 643 00:49:37,000 --> 00:49:39,000 என்று நாம் என்ன தேவை தவிர்க்க முடியாமல் உள்ளது. 644 00:49:39,000 --> 00:49:42,000 ஏன் அடுத்த struct முனை இருக்க முடியாது? 645 00:49:42,000 --> 00:49:50,000 ஏன் அதை * அடுத்த struct முனை இருக்க வேண்டும்? Yeah. 646 00:49:50,000 --> 00:49:53,000 [மாணவர்] இது ஒரு முடிவிலா சுழற்சியில் போல. 647 00:49:53,000 --> 00:49:55,000 Yeah. 648 00:49:55,000 --> 00:49:57,000 [மாணவர்] இது ஒரு இருக்கும். 649 00:49:57,000 --> 00:50:02,000 சரி, இப்போது நாம் அளவு அல்லது ஏதாவது எப்படி என்று. 650 00:50:02,000 --> 00:50:08,000 ஒரு struct அளவு அடிப்படையில் + அல்லது - இங்கு அல்லது அங்கு சில முறை. 651 00:50:08,000 --> 00:50:15,000 இது அடிப்படையில் struct விஷயங்களை அளவுகள் தொகை இருக்க போகிறது. 652 00:50:15,000 --> 00:50:18,000 இங்கே இந்த உரிமை, எதையும் மாற்றாமல், அளவு எளிதாக இருக்கும். 653 00:50:18,000 --> 00:50:24,000 Struct முனை அளவு அடுத்த நான் + அளவு அளவு இருக்கும். 654 00:50:24,000 --> 00:50:27,000 நான் அளவு 4 போகிறது. அடுத்த அளவு 4 போகிறது. 655 00:50:27,000 --> 00:50:30,000 Struct முனை அளவு 8 போகிறது. 656 00:50:30,000 --> 00:50:34,000 நாம் * இல்லை என்றால், sizeof நினைத்து 657 00:50:34,000 --> 00:50:37,000 பின்னர் sizeof (நான்) 4 போகிறது. 658 00:50:37,000 --> 00:50:43,000 Struct முனை அளவு அடுத்த அடுத்த struct முனையத்தின் + அளவு நான் அளவு இருக்கும் 659 00:50:43,000 --> 00:50:46,000 அடுத்த struct முனையத்தின் நான் + அளவு + அளவு. 660 00:50:46,000 --> 00:50:55,000 இது முனைகளில் முடிவிலா மறுநிகழ்வு வேண்டும். 661 00:50:55,000 --> 00:51:00,000 இந்த விஷயங்கள் இருக்க வேண்டும் என்பதை ஏன் இந்த. 662 00:51:00,000 --> 00:51:03,000 >> மீண்டும், நிச்சயமாக, அது நினைவில் 663 00:51:03,000 --> 00:51:06,000 அல்லது குறைந்த பட்சம் நீங்கள் முடியும் என்று போதும் அதை புரிந்து கொள்ள 664 00:51:06,000 --> 00:51:12,000 அது இருக்க வேண்டும் என்ன வழியாக காரணம். 665 00:51:12,000 --> 00:51:14,000 நாம் செயல்படுத்த வேண்டும் போகிறோம் விஷயங்கள். 666 00:51:14,000 --> 00:51:18,000 என்றால் நீளம் பட்டியல்- 667 00:51:18,000 --> 00:51:21,000 நீங்கள் ஏமாற்றி ஒரு சுற்றி வைத்து முடியும் 668 00:51:21,000 --> 00:51:24,000 உலக நீளம் அல்லது ஏதோ, ஆனால் நாம் அதை செய்ய போவதில்லை. 669 00:51:24,000 --> 00:51:28,000 நாம் பட்டியல் நீளம் எண்ண போகிறோம். 670 00:51:28,000 --> 00:51:34,000 நாம் கொண்டிருக்கும் வேண்டும், அந்த அடிப்படையில் ஒரு தேடல் தான் மிகவும் 671 00:51:34,000 --> 00:51:41,000 எனவே இந்த முழு இணைக்கப்பட்ட பட்டியலில் இருந்தால் பார்க்க முழுஎண்களின் ஒரு இணைக்கப்பட்ட பட்டியலில் இல்லை. 672 00:51:41,000 --> 00:51:44,000 முன்னொட்டைச் 'சேர்த்து கொள்கின்றன பட்டியலில் ஆரம்பத்தில் நுழைக்க வேண்டும். 673 00:51:44,000 --> 00:51:46,000 Append இறுதியில் சேர்க்க வேண்டும். 674 00:51:46,000 --> 00:51:53,000 Insert_sorted பட்டியலில் வரிசைப்படுத்தப்பட்ட நிலை செருக போகிறது. 675 00:51:53,000 --> 00:52:01,000 இந்த Insert_sorted வகையான நீங்கள் முன்னொட்டைச் 'சேர்த்து கொள்கின்றன பயன்படுத்தப்படும் அல்லது கெட்ட வழிகளில் சேர்க்க முடியாது என்று கருதுகிறது. 676 00:52:01,000 --> 00:52:09,000 >> நீங்கள் செயல்படுத்தும் போது insert_sorted-Insert_sorted 677 00:52:09,000 --> 00:52:13,000 நாம் நமது இணைக்கப்பட்ட பட்டியலில் இல்லை என்று. 678 00:52:13,000 --> 00:52:18,000 இது தற்போது 5, 4, 2, போல் உள்ளது. 679 00:52:18,000 --> 00:52:24,000 நான், மிக நீண்ட பட்டியல் தன்னை ஏற்கனவே வரிசையாக்கம் என, 3 சேர்க்க வேண்டும் 680 00:52:24,000 --> 00:52:27,000 இது 3 எங்கிருந்து கண்டுபிடிக்க எளிதானது. 681 00:52:27,000 --> 00:52:29,000 நான் 2 மணிக்கு தொடங்கும். 682 00:52:29,000 --> 00:52:32,000 சரி, 3 2 விட, அதனால் நான் செல்ல வேண்டும். 683 00:52:32,000 --> 00:52:35,000 ஓ,, 4 மிகவும் பெரியதாக உள்ளது, அதனால் நான் 3 2 மற்றும் 4 இடையில் போக போகிறது என்று 684 00:52:35,000 --> 00:52:39,000 நான் குறிப்புகள் மற்றும் அதையெல்லாம் சரி செய்ய வேண்டும். 685 00:52:39,000 --> 00:52:43,000 ஆனால் நாம் கண்டிப்பாக, insert_sorted பயன்படுத்த முடியவில்லை என்றால், 686 00:52:43,000 --> 00:52:50,000 இப்படி நாம் தான், நான் 6 முன்னொட்டைச் 'சேர்த்து கொள்கின்றன என்று 687 00:52:50,000 --> 00:52:55,000 பிறகு என் இணைக்கப்பட்ட பட்டியலில் இந்த போகிறாள். 688 00:52:55,000 --> 00:53:01,000 அது இப்போது insert_sorted செய்ய, நீங்கள் நினைத்து கொள்ளலாம் எனவே, எந்த அர்த்தமும் 689 00:53:01,000 --> 00:53:04,000 செயல்பாடுகள் உள்ளன கூட பட்டியலில், வரிசைப்படுத்தப்பட்ட என்று 690 00:53:04,000 --> 00:53:09,000 இது வருவீங்கன்னு இல்லை ஏற்படுத்தும், அவ்வளவு தான். 691 00:53:09,000 --> 00:53:20,000 அந்த நீங்கள் செயல்படுத்த வேண்டும் போகிறோம் முக்கிய விஷயங்களை ஒரு பயனுள்ளதாக நுழைவு-ஆக உள்ளது. 692 00:53:20,000 --> 00:53:24,000 >> இப்போது, நீளம் செய்ய ஒரு நிமிடம் எடுத்து கொண்டுள்ளது 693 00:53:24,000 --> 00:53:30,000 அந்த ஒப்பீட்டளவில் விரைவான இருக்க வேண்டும். 694 00:53:41,000 --> 00:53:48,000 இறுதி நேரம் நெருங்குகிறது, அதனால் யாருக்கும் நீளம் எதுவும் இல்லை அல்லது கொண்டுள்ளது? 695 00:53:48,000 --> 00:53:50,000 அவர்கள் கிட்டத்தட்ட ஒரே மாதிரியாக இருக்க போகிறோம். 696 00:53:50,000 --> 00:53:57,000 [மாணவர்] நீளம். 697 00:53:57,000 --> 00:54:01,000 , தான் பார்க்க திருத்தம் செய்யலாம். 698 00:54:01,000 --> 00:54:04,000 சரி. 699 00:54:12,000 --> 00:54:15,000 நீங்கள் விளக்க வேண்டும்? 700 00:54:15,000 --> 00:54:21,000 [மாணவர்] நான் ஒரு சுட்டிக்காட்டி முனை உருவாக்க மற்றும் நம் உலக மாறி இது முதல், இதை துவக்க, 701 00:54:21,000 --> 00:54:27,000 பின்னர் நான் ஒரு நொடி தவறு செய்து அந்த வழக்கு என்றால் 0 திரும்பி வருவதில்லை அது வெற்று என்று பார்க்கவும். 702 00:54:27,000 --> 00:54:34,000 இல்லையெனில், நான் மூலம் மடக்கி, முழு உள்ள கண்காணிப்பதற்கான 703 00:54:34,000 --> 00:54:38,000 நான் பட்டியல் அடுத்த உறுப்பு அணுக எத்தனை முறை 704 00:54:38,000 --> 00:54:43,000 அதே அதிகரிப்பு நடவடிக்கை மேலும், அந்த உண்மையான உறுப்பு அணுக 705 00:54:43,000 --> 00:54:47,000 பின்னர் நான் தொடர்ந்து, அது வெற்று இருந்தால் காசோலை பார்க்க வேண்டும் 706 00:54:47,000 --> 00:54:56,000 அது வெற்று இருந்தால் மற்றும், அது aborts மற்றும் நான் அணுக நான் கூறுகள் எண்ணிக்கை கொடுக்கிறது. 707 00:54:56,000 --> 00:55:01,000 >> [ராப் பி] யாரும் எதையும் எந்த கருத்து உள்ளதா? 708 00:55:01,000 --> 00:55:06,000 இந்த அபராதம் சரியான பாண்டித்தியம் தெரிகிறது. 709 00:55:06,000 --> 00:55:10,000 [மாணவர்] நான் முனை == பூஜ்ய வேண்டும் என்று நான் நினைக்கவில்லை. 710 00:55:10,000 --> 00:55:13,000 சரி, அதனால் முனை என்றால் == பூஜ்ய திரும்ப 0. 711 00:55:13,000 --> 00:55:18,000 ஆனால் முனை == பூஜ்ய இந்த-ஓ, ஒரு சரியான பிரச்சினை இருந்தால். 712 00:55:18,000 --> 00:55:23,000 அது நீங்கள் எனக்கு திருப்பி கொடுக்கிறோம், ஆனால் அது இப்போது நோக்கம் அல்ல. 713 00:55:23,000 --> 00:55:30,000 நீங்கள் முழு எண்ணாக நான் வேண்டும், அதனால் நான் = 0. 714 00:55:30,000 --> 00:55:34,000 கணு பூஜ்ய என்று ஆனால், பிறகு நான் இன்னும், 0 போகிறது 715 00:55:34,000 --> 00:55:39,000 நாம் 0 திரும்ப போகிறோம், இந்த வழக்கில் ஒரே இருக்கும். 716 00:55:39,000 --> 00:55:48,000 மற்றொரு பொதுவான விஷயம் அறிவிப்பு வைத்திருக்க வேண்டும் 717 00:55:48,000 --> 00:55:51,000 லூப் ஒரு முனை உள்ளே இருந்து. 718 00:55:51,000 --> 00:55:54,000 நீங்கள் என்ன சொன்னாலும், ஓ என்று இல்லை. 719 00:55:54,000 --> 00:55:56,000 இது போன்ற வைப்போம். 720 00:55:56,000 --> 00:55:59,000 நான் ஒருவேளை, int நான் = 0 இங்கே வைக்க வேண்டும் 721 00:55:59,000 --> 00:56:05,000 பின்னர் முனை * கணு = இங்கே முதல். 722 00:56:05,000 --> 00:56:11,000 இந்த இப்போது இந்த போக்க-பெற்று எப்படி பொருள். 723 00:56:11,000 --> 00:56:14,000 இந்த நான் எழுதிய என்று எப்படி பொருள். 724 00:56:14,000 --> 00:56:21,000 இந்த மாதிரி அது மேலும்-looking. 725 00:56:21,000 --> 00:56:25,000 சரி இங்கே வளைய அமைப்பு இந்த 726 00:56:25,000 --> 00:56:30,000 int நான் = 0 போன்ற நீங்கள் கிட்டத்தட்ட போன்ற இயற்கை இருக்க வேண்டும் 727 00:56:30,000 --> 00:56:33,000 நான் வரிசை நீளம் குறைவாக நான் +. 728 00:56:33,000 --> 00:56:38,000 என்று ஒரு அணி மீது மீண்டும் கூறு எப்படி என்றால், இந்த ஒரு இணைக்கப்பட்ட பட்டியலில் மீது மீண்டும் கூறு உள்ளது. 729 00:56:38,000 --> 00:56:45,000 >> இந்த கட்டத்தில் இரண்டாவது இயல்பு இருக்க வேண்டும். 730 00:56:45,000 --> 00:56:50,000 மனதில் கொண்டு, இந்த கிட்டத்தட்ட அதே விஷயம் நடக்கும். 731 00:56:50,000 --> 00:56:57,000 நீங்கள் ஒரு இணைக்கப்பட்ட பட்டியலில் மீது மீண்டும் கூறு வேண்டும் போகிறோம். 732 00:56:57,000 --> 00:57:02,000 என்றால் முனை நான் மதிப்பு எனப்படும் தெரியாது. 733 00:57:02,000 --> 00:57:04,000 கணு நான். 734 00:57:04,000 --> 00:57:15,000 அந்த முனை உள்ள மதிப்பு = நான் உண்மையாக திரும்பி, மற்றும் அது இருந்தால். 735 00:57:15,000 --> 00:57:18,000 கவனிக்க என்று நாம் எப்போதும் தவறான திரும்ப ஒரே வழி 736 00:57:18,000 --> 00:57:23,000 நாம் முழு இணைக்கப்பட்ட பட்டியலில் மீது மீண்டும் கூறு மற்றும் உண்மையான திரும்பாது என்றால் இல்லை, 737 00:57:23,000 --> 00:57:29,000 அதனால் இந்த என்ன. 738 00:57:29,000 --> 00:57:36,000 ஒரு பக்க குறிப்பு: நாம் அநேகமாக சேர்க்க அல்லது முன்னொட்டைச் 'சேர்த்து கொள்கின்றன செய்ய முடியாது. 739 00:57:36,000 --> 00:57:39,000 >> விரைவு கடந்த குறிப்பு. 740 00:57:39,000 --> 00:57:52,000 நீங்கள் நிலையான முக்கிய பார்த்தால், அதனால், தான் நிலையான எண்ணாக எண்ணிக்கை = 0 சொல்கிறேன் 741 00:57:52,000 --> 00:57:56,000 நாம் எண்ணிக்கை செய்ய + + நீங்கள் அடிப்படையில் ஒரு பூகோள மாறி அதை பற்றி யோசிக்க முடியும், 742 00:57:56,000 --> 00:58:00,000 நான் இந்த நாம் நீளம் செயல்படுத்த போகிறோம் எப்படி இல்லை என்று கூட. 743 00:58:00,000 --> 00:58:06,000 நான் இங்கே இதை, பின்னர் + எண்ணிக்கை. 744 00:58:06,000 --> 00:58:11,000 நாங்கள் எங்கள் எண்ணிக்கையை அதிகரிக்க எங்கள் இணைக்கப்பட்ட பட்டியலில் ஒரு முனை உள்ளிட எந்த வழி. 745 00:58:11,000 --> 00:58:15,000 இந்த நிலையில் நிலையான முக்கிய பொருள் என்ன. 746 00:58:15,000 --> 00:58:20,000 நான் எண்ணாக எண்ணிக்கை இருந்தால் = வழக்கமான பழைய உலக மாறி இருக்கும் என்று 0. 747 00:58:20,000 --> 00:58:25,000 என்ன நிலையான எண்ணாக எண்ணிக்கை என்பது இந்த கோப்பு ஒரு உலகளாவிய மாறி உள்ளது. 748 00:58:25,000 --> 00:58:28,000 இது, வேறு சில கோப்பு முடியாது 749 00:58:28,000 --> 00:58:34,000 நீங்கள் ஆரம்பித்து விட்டீர்கள் என்றால், pset 5 என்று விரும்புகிறேன். 750 00:58:34,000 --> 00:58:39,000 , நீங்கள் இருவரும் speller.c வேண்டும், மற்றும் நீங்கள் dictionary.c வேண்டும் 751 00:58:39,000 --> 00:58:42,000 மற்றும் நீ speller.c பின்னர், எதுவும் உலகளாவிய ஒரு விஷயத்தை அறிவிக்க வேண்டும் 752 00:58:42,000 --> 00:58:45,000 dictionary.c மற்றும் மறுதலையாகவும் அணுக முடியும். 753 00:58:45,000 --> 00:58:48,000 உலக மாறிகள், எந்த. கேட்ச் கோப்பு மூலம் அணுக 754 00:58:48,000 --> 00:58:54,000 ஆனால் நிலையான மாறிகளை, கோப்பு உள்ளேயே இருந்து மட்டுமே அணுக முடியும் 755 00:58:54,000 --> 00:59:01,000 எனவே உள்ளே dictionary.c மற்றும் பிழைத்திருத்த அல்லது உள்ளே இருந்து, 756 00:59:01,000 --> 00:59:06,000 இந்த நான் என் வரிசை அளவு என் மாறி அறிவிக்க எப்படி வகையாக 757 00:59:06,000 --> 00:59:10,000 அல்லது அகராதியில் வார்த்தைகள் என் எண் அளவு. 758 00:59:10,000 --> 00:59:15,000 நான் யாரையும் அணுக ஒரு உலகளாவிய மாறி அறிவிக்க விரும்பவில்லை என்பதால், 759 00:59:15,000 --> 00:59:18,000 நான் மட்டும் என் சொந்த காரணங்களுக்காக அதை பற்றி கவலைப்படவில்லை. 760 00:59:18,000 --> 00:59:21,000 >> இந்த பற்றி நல்ல விஷயம் கூட முழு பெயர் மோதல் பொருள். 761 00:59:21,000 --> 00:59:27,000 வேறு சில கோப்பு எண்ணிக்கை என்று ஒரு உலக மாறி பயன்படுத்த முயன்றால், விஷயங்களை மிக மிக தவறு, 762 00:59:27,000 --> 00:59:33,000 எனவே, இந்த நன்றாக பொருட்களை பாதுகாப்பாக வைத்திருக்கும், மற்றும் நீங்கள் அதை அணுக முடியும் 763 00:59:33,000 --> 00:59:38,000 வேறு யாரும் செய்ய முடியும், மற்றும் வேறு எண்ணிக்கை என்று ஒரு உலக மாறி அறிவிக்கிறது என்றால், 764 00:59:38,000 --> 00:59:43,000 அது எண்ணிக்கை என்று உங்கள் நிலையான மாறி தலையிட மாட்டேன். 765 00:59:43,000 --> 00:59:47,000 அந்த நிலையானது என்ன. அது ஒரு கோப்பை உலக மாறி உள்ளது. 766 00:59:47,000 --> 00:59:52,000 >> ஏதாவது கேள்விகள்? 767 00:59:52,000 --> 00:59:59,000 அனைத்து தொகுப்பு. வருகிறேன். 768 00:59:59,000 --> 01:00:03,000 [CS50.TV]