[Powered by Google Translate] [வாரம் 5]
[டேவிட் ஜே Malan - ஹார்வர்ட் பல்கலைக்கழகம்]
[இந்த CS50 உள்ளது. - CS50.TV]
>> இந்த CS50, வாரம் 5.
இன்று இந்த வாரம், நாம் ஆய்வுத்துறை உலக சிறிது அறிமுகம்
சிக்கல் சூழலில் 4 அமைக்கவும்.
இங்கே ஒரு சிறப்பு நிகழ்ச்சி பின்னர் அங்கு ஏனெனில் இன்று ஒரு சுருக்கமாக உரை இருக்கும்.
எனவே நாம் ஒரு கண்ணோட்டம் எடுத்து, மாணவர்கள் மற்றும் ஒரே பெற்றோர்கள் இன்று இரண்டு கிண்டலடிக்கிறேன்
அடிவானத்தில் என்று விஷயங்கள் சில.
>> அவர்கள் மத்தியில், திங்கள் வரை, நீங்கள் இன்னும் சில படித்தவர்களை வேண்டும்.
edX, ஹார்வர்ட் மற்றும் ஓபன்கோர்ஸ்வேர் மற்றும் எம்ஐடி புதிய ஆன்லைன் முயற்சி,
திங்கள் வந்து அதாவது இது திங்கள் அன்று ஹார்வார்டு வளாகத்தில் வெளியீடு
நீங்கள், கடந்த எண்ணிக்கை வரை, 86,000 கூடுதல் படித்தவர்களை வேண்டும்
CS50 இன் விரிவுரைகள் மற்றும் பிரிவுகள் மூலம் யார் சேர்த்து தொடர்ந்து
மற்றும் மேலோட்டப்பார்வைகள் மற்றும் சிக்கல் செட்.
இந்த ஒரு பகுதியாக, நீங்கள் CS50 இப்போது CS50x தொடக்க வர்க்கத்தின் உறுப்பினர்கள் மாறும்.
இந்த பகுதி இப்போது, அதே சில upsides இருக்கும் என்று.
மாணவர்கள் பெரும் எண்ணிக்கையிலான, இந்த தயாராக,
என்ன அது போதுமானதாக என்று நாம் 108 டிஎஃப்எஸ் மற்றும் CAS உள்ளது கூட,
நாம் மாணவர்கள் 80,000 ஹிட் முறை இது மிக சிறந்த மாணவர் ஆசிரியர் விகிதம் இல்லை.
நாம், கைமுறையாக அமைத்து பல சிக்கல் தரப்படுத்தி வேண்டும் போவதில்லை
அதனால் பிரச்சனை தொகுப்பில் இந்த வாரம் அறிமுகப்படுத்தியது, CS50 சோதனை இருக்கும்
பயன்பாட்டிற்கான ஒரு கட்டளை வரி பயன்பாட்டு இருக்கும் இது
இந்த வார பின்னர் அதை புதுப்பிக்க ஒரு முறை கிடைக்கும் என்று.
நீங்கள், உங்கள் சொந்த pset ஒரு கட்டளை, check50, இயக்க முடியும்
உங்கள் திட்டம் சரியான அல்லது தவறானது என உடனடி கருத்து கிடைக்கும்
நாம் வழங்கப்படும் என்று பல்வேறு வடிவமைப்பு குறிப்புகளில் படி.
பிரச்சனை தொகுப்பு குறிப்பீட்டில் என்று மேலும்.
CS50x வகுப்பு தோழர்கள் அத்துடன் இந்த பயன்படுத்தி.
>> பிரச்சனை அமை 4, அனைத்து ஆய்வுத்துறை பற்றி
இந்த pset உண்மையில் சில நிஜ வாழ்க்கை பொருள் அழகூட்டும்
அதனால் நான் பட்டதாரி பள்ளியில் இருந்த போது நான் ஒரு நேரத்தில் interned
மிடில்செக்ஸ் கவுண்டி தான் மாவட்ட வழக்கறிஞர் அலுவலகம் தடயவியல் வேலை செய்து கொண்டு
அவர்கள் முன்னணி தடயவியல் புலன்விசாரணை மூலம்.
நான் ஒரு சில வாரங்கள் கடந்த குறிப்பிட்டுள்ளார் நினைப்பது என்ன இந்த, தொகை
மாஸ் மாநிலம் பொலிஸ் அல்லது மற்றவர்கள், வந்து
அவர்கள், ஹார்டு டிரைவ்கள் மற்றும் சிடிக்கள் மற்றும் நெகிழ் வட்டுகள் போன்ற போன்ற விஷயங்களை விட்டுவிடுவாரா என்று
பின்னர் ஆய்வுத்துறை அலுவலக இலக்கு அறிந்துகொள்ள வேண்டும்
அங்கு அல்லது சில வகையான ஆதாரங்கள் இல்லை என்று.
இந்த சிறப்பு விசாரணைகள் அலகு இருந்தது, அது வெள்ளை காலர் குற்றமாகும்.
இது குற்றங்கள் மிகவும் சிக்கலான வகை, டிஜிட்டல் மீடியா சில வகையான சம்பந்தப்பட்ட எதுவும் இல்லை.
பல மக்கள் என்று ஒரு மின்னஞ்சல் எழுத வேண்டும் என்று, "நான் அதை செய்தேன்." என்று திருப்பி
அதனால் அடிக்கடி, இந்த தடயவியல் தேடல்கள், அனைத்து அந்த பழம் திரும்பக்கூட இல்லை
ஆனால் சில நேரங்களில் இது போன்ற மின்னஞ்சல்களை எழுத வேண்டும்.
அதனால் சில நேரங்களில், முயற்சிகள் பரிசாக வழங்கப்பட்டது.
>> ஆனால் இந்த தடயவியல் pset நாம் pset4 உள்ள கிராபிக்ஸ் ஒரு பிட் அறிமுகம் முடியும் வரை வாழ.
ஒருவேளை நீங்கள் வழங்கும் இந்த பொருட்களை எடுத்து - JPEG படங்கள், GIF களை, போன்ற - இந்த நாட்கள்.
ஆனால் நீங்கள் உண்மையில் அதை பற்றி நினைத்தால், ஒரு படம், மிக ராப் முகம் போல்,
புள்ளிகள் அல்லது பிக்சல்கள் தொடர்ச்சியாக மாதிரியாக.
ராப் முகத்தை வழக்கில், நிறங்களை அனைத்து வகையான, அங்கு
நாம், இல்லையெனில் பிக்சல்கள் என்று அழைக்கப்படும் தனிநபர் புள்ளிகள், பார்க்க தொடங்கியது
ஒருமுறை நாங்கள் உள்ளே பெரிதாக்க தொடங்கியது
ஆனால் நாம் உலக சிறிது எளிமைப்படுத்த மற்றும் இந்த இங்கே கருப்பு மற்றும் வெள்ளை ராப் என்று சொன்னால்,
கருப்பு மற்றும் வெள்ளை பிரதிநிதித்துவம், நாம் தான் பைனரி பயன்படுத்தலாம்.
நாம் பைனரி பயன்படுத்த போகிறீர்கள் என்றால், 1 அல்லது 0, நாம் இந்த அதே படத்தை வெளிப்படுத்த முடியும்
பிட்கள் இந்த வடிவத்துடன் ராப் சிரித்த முகம்.
11000011 வெள்ளை, வெள்ளை, கருப்பு, கருப்பு, கருப்பு, கருப்பு, வெள்ளை, வெள்ளை பிரதிபலிக்கிறது.
அதனால் இது, வண்ணமயமான புகைப்படங்கள் பற்றி தொடங்க பிறகு ஒரு பெரும் பாய்ச்சல் அல்ல
நீங்கள் பேஸ்புக் பார்க்க அல்லது ஒரு டிஜிட்டல் கேமரா மூலம் எடுத்து என்று விஷயங்கள்.
ஆனால் நிச்சயமாக இது நிறங்கள் வரும்போது, நீங்கள் அதிகமான பிட்கள் வேண்டும்.
மற்றும் புகைப்படங்கள் உலகில் மிகவும் பொதுவான, இல்லை 1 பிட் வண்ணம் பயன்படுத்த வேண்டும்
இந்த கருத்து, ஆனால் 24 பிட் வண்ணம், நீங்கள் உண்மையில் மில்லியன் கணக்கிலான நிறங்களை இங்கு. போன்ற
நாம் ராப் கண் மீது காண்பிக்க போது வழக்கில் என,
என்று பல்வேறு வண்ணமயமான சாத்தியக்கூறுகள் மில்லியன் எந்த எண் இருந்தது.
எனவே, பிரச்சினை அமை 4 அதேபோல ஒத்திகையும் இந்த அறிமுகம்
ஏனெனில் இங்கு வெள்ளிக்கிழமை விரிவுரை வழக்கமான 2:30 பதிலாக 3:30 இன்று இருக்கும் இது.
ஆனால் வீடியோ வழக்கமான நாளை ஆன்லைனில் இருக்கும்.
>> நாங்கள் மற்றொரு கோப்பு வடிவம் உன்னை அறிமுகப்படுத்துகிறேன்.
இந்த வேண்டுமென்றே, முதலில் மிரட்டுதல் பார்க்க பொருள்
ஆனால் இந்த ஒரு சி struct இன்னும் சில ஆவணங்கள் ஆகும்.
இது மைக்ரோசாப்ட் ஆண்டுகளுக்கு முன்பு இந்த வடிவம் பிரபலமடைய உதவியது என்று மாறும்
பிட்மேப் கோப்பு வடிவம், BMP, இந்த ஒரு சூப்பர் எளிய, வண்ணமயமான வரைகலை கோப்பு வடிவம் என்று அழைக்கப்படுகிறது
அந்த டெஸ்க்டாப்புகளில் சுவர்த்தாளுக்கு சில நேரங்களில் இன்னும் சிறிது நேரத்தில் பயன்படுத்தப்படும் மற்றும்.
நீங்கள் Windows XP மற்றும் ரோலிங் மலைகள் மற்றும் நீல வானத்தில் திரும்ப நினைத்தால்,
என்று பொதுவாக ஒரு bmp அல்லது பிட்மேப் படம் இருந்தது.
அவர்கள் சற்று சிக்கலான ஏனெனில் பிட்டுப்படங்கள் நமக்கு வேடிக்கையாக இருக்கிறது.
அது மிகவும் 0 க்கள் மற்றும் 1 வி இந்த கட்டம் போன்று எளிதானது தான்.
அதற்கு பதிலாக, நீங்கள் ஒரு கோப்பு தொடக்கத்தில் ஒரு தலைப்பு போன்ற விஷயங்கள் வேண்டும்.
எனவே உள்ளே ஒரு. Bmp கோப்பு மற்ற வார்த்தைகள், உள்ள 0 க்கள் மற்றும் 1 வி ஒரு மொத்தமாக, இது
ஆனால் அங்கு சில கூடுதல் 0 க்கள் மற்றும் 1 வி உள்ளது.
அது ஆண்டுகளுக்கு வழங்கப்படும் என்ன நாம் அநேகமாக எடுத்திருப்பார் என்று மாறும் -
. doc அல்லது. xls அல்லது. mp3, போன்ற கோப்பு வடிவங்கள். mp4, அதை கோப்பு வடிவங்கள்
நீங்கள் அறிந்த என்பதை - என்ன அது கூட, ஒரு கோப்பு வடிவம் என்று அர்த்தம்
நாள் முடிவில் இந்த கோப்புகள் அனைத்தையும் நாம் வெறும் 0 க்கள் மற்றும் 1 வி வேண்டும் பயன்படுத்த காரணம்.
ஒருவேளை அந்த 0 க்கள் மற்றும் 1 வி ஆஸ்கி மூலம் ஏபிசி அல்லது போல, பிரதிநிதித்துவம்
ஆனால் நாள் முடிவில், அது இன்னும் சற்று 0 க்கள் மற்றும் 1 வி தான்.
எனவே மனிதர்கள் எப்போதாவது ஒரு புதிய கோப்பு வடிவமைப்பை கண்டுபிடித்தல் முடிவு
அவர்கள் பிட்கள் முறைகள் உண்மையில் என்ன என்ன தரப்படுத்த வேண்டும்.
இங்கு இந்த வழக்கில், எல்லோரும் பிட்மேப் கோப்பு வடிவம் வடிவமைக்கப்பட்டுள்ளது யார்
ஒரு பிட்மேப் கோப்பு முதல் பைட் நேரத்தில், அங்கு ஆஃப்செட் 0 குறிக்கப்படும் என்று,
சில மிகுந்த அளவில் மாறுபாடாக என்ற மாறி என்று bfType, இருக்க போகிறது
வெறும் படங்கள் கோப்பு வகை உள்ளது, இது என்ன பிட்மேப் கோப்பு வகை இது.
நீங்கள் 2 ஈடு என்று இரண்டாவது வரிசையில், பைட் எண் 2, ஒருவேளை தெரிகிறது
என்ன பிரதிபலிக்கிறது என்று 0s மற்றும் 1 வி ஒரு முறை உள்ளது? ஏதாவது அளவு.
அது அங்கு இருந்து செல்லும்.
அதனால் பிரச்சனை அமை 4 இல், இந்த விஷயங்கள் சில வழியாக நடந்து.
நாம் அவர்களை பற்றி caring முடிந்துவிடாது.
ஆனால் அது பைட் 54 சுற்றி சுவாரசியமான பெற தொடங்கும் அறிவிப்பு: rgbtBlue, பச்சை, மற்றும் Red.
நீங்கள் இதுவரை கேட்டிருக்கிறேன் என்றால் சுருக்க RGB - சிவப்பு, பச்சை, நீலம் - இந்த என்று ஒரு குறிப்பு உள்ளது
அதை திருப்பி ஏனெனில் நீங்கள் வானவில் அனைத்து வண்ணங்கள் சித்தரிக்க முடியும்
சிவப்பு மற்றும் நீல மற்றும் பச்சை சில சேர்க்கை.
மற்றும் உண்மையில், அறையில் பெற்றோர்கள் முந்தைய ப்ரொஜக்டர் சில நினைவுகூர வேண்டும்.
இந்த நாட்களில், நீங்கள் மட்டும், ஒரு பிரகாசமான ஒளி ஒரு லென்ஸ் வெளியே வந்து பார்க்க
ஆனால் மீண்டும் நாளில் நீ, சிவப்பு லென்ஸ், நீல லென்ஸ், மற்றும் பச்சை லென்ஸ் இருந்தது
அவர்கள் ஒன்றாக இணைந்து ஒரு திரை இலக்காக மற்றும் ஒரு வண்ணமயமான படம் உருவாகிறது.
மேலும் அடிக்கடி, நடுத்தர பள்ளிகள் மற்றும் உயர்நிலை பள்ளிகள் அந்த லென்ஸ்கள் வேண்டும்
எப்போதும் மிகவும் சற்று சாய்ந்து, அதனால் நீங்கள் இரட்டை அல்லது மூன்று படங்களை பார்த்து வகையான இருந்தன.
ஆனால் அந்த யோசனை. நீங்கள் ஒரு படத்தை ஓவியம் சிவப்பு மற்றும் பச்சை மற்றும் நீல ஒளி இருந்தது.
மற்றும் அதே கொள்கை கணினிகளில் பயன்படுத்தப்படுகிறது.
>> அதனால் பிரச்சனை உங்களுக்கு பிறகு சவால்களை மத்தியில் அமை 4 ஒரு சில விஷயங்கள் இருக்க போகிறோம்.
ஒரு உண்மையில் ஒரு படஅளவை ஆகும், 0 க்கள் மற்றும் 1 வி ஒரு வடிவத்தை எடுத்து,
, 0 க்கள் மற்றும் 1 வி பல துண்டுகளாக்கி ஒரு அமைப்பு என்ன இந்த பிரதிநிதித்துவப்படுத்தும் கண்டுபிடித்தார்கள்
சிவப்பு, நீலம், பச்சை - பின்னர் பிக்சல்கள் பெருக்கும் என்பதை கண்டுபிடித்தார்கள் -
உள்ளே அந்த படத்தை ஆரம்பத்தில் இந்த மாதிரி போது,
அது பின்னர் பதிலாக இந்த மாதிரி இருக்கும்.
மற்ற சவால்களை மத்தியில் கூட நீங்கள் ஒரு தடயவியல் படத்தை கொடுத்தது என்று நான் போகிறது
ஒரு டிஜிட்டல் கேமரா ஒரு உண்மையான கோப்பு.
அந்த கேமரா, ஒரு காலத்தில், புகைப்படங்கள் ஒரு மொத்தமாக இருந்தது.
பிரச்சினை நாம் தற்செயலாக அழிக்க அல்லது படத்தை எப்படியாவது சிதைந்த இருந்தது.
கெட்ட டிஜிட்டல் கேமராக்கள் நடக்க.
எனவே நாம் உடனடியாக, அந்த அட்டை 0 க்கள் மற்றும் 1 வி ஆஃப் அனைத்து நகல்
4 அமைக்கவும் ஒரு பெரிய கோப்பு அவர்களை காப்பாற்றினார், மற்றும் நாம் பிரச்சினைகளை நீங்கள் அவற்றை கொடுப்பாய்
நீங்கள் வெறுமனே, அந்த JPEG படங்கள் அனைத்தையும் மீட்க எந்த சி ஒரு நிரலை எழுத முடியும்.
அதை அவர்கள் ஒரு சிக்கலான கோப்பு வடிவம் ஓரளவு தான் என்றாலும், அந்த JPEG படங்கள் அவுட் சுழல்கிறது -
அவர்கள் மிகவும் சிக்கலான இங்கே இந்த சிரித்த முகத்தை விட நீ -
ஒவ்வொரு JPEG 0 க்கள் மற்றும் 1 வி அதே முறைகள் தொடங்குகிறது என்று கூறினார்.
எனவே பயன்படுத்தி, இறுதியில், லூப் அல்லது இதே போன்ற ஒரு நிலையில் சுழற்சி அல்லது,
நீங்கள், இந்த தடயவியல் படத்தை அனைத்து 0 க்கள் மற்றும் 1 வி மீது மீண்டும் கூறு முடியாது
நீங்கள் பிரச்சனை தொகுப்பு குறிப்பீட்டிலுள்ள என்று சிறப்பு முறை பார்க்க ஒவ்வொரு முறையும்,
நீங்கள், மிக அதிக நிகழ்தகவு, ஒரு JPEG தொடக்கத்தில் இங்கு தொடரலாம்.
மற்றும் விரைவில் நீங்கள் அதே பாணி பைட்டுகள் சில பல கண்டு
அல்லது கிலோபைட்டுகளை அல்லது மெகாபைட் பின்னர், நீங்கள் இங்கே நினைத்து கொள்ளலாம், இரண்டாவது JPEG உள்ளது
படத்தை நான் முதல் ஒரு பின்னர் நடந்தது.
எனக்கு அந்த முதல் கோப்பு படித்து விட்டுவிடுவோம், இந்த புதிய எழுத தொடங்கினார்
மற்றும் pset4 உங்கள் நிரல் வெளியீடு பல 50 JPEG படங்கள் போகிறது.
இது 50 JPEG படங்கள் இல்லை என்றால், நீங்கள் ஒரு வட்டத்திற்கு ஒரு பிட் உள்ளது.
நீங்கள் JPEG படங்கள் எண்ணற்ற இருந்தால், நீங்கள் ஒரு முடிவிலா சுழற்சியில் உள்ளது.
எனவே அதுவும் மிகவும் பொதுவான வழக்கு இருக்கும்.
அதனால் அடிவானத்தில் தான் என்ன.
>> எங்களுக்கு பின்னால் 0 க்விஸ், சந்தோஷமாக இரு யார் எல்லோரும் தவிர்க்க உள்ளன என்று என் மின்னஞ்சல் ரூ உணர
நடுநிலை, மற்றும் வினாடி வினா சுற்றி வருத்தம் 0 நேரம் வகையான.
தலைமை TF Zamyla, உங்கள் சொந்த TF, என்னை வெளியே வந்து தயவுசெய்து
நீங்கள் எல்லாம் எப்படி விவாதிக்க விரும்பினால் உங்களுக்கு தெரியும் என்று CAS அல்லது ஒரு.
>> எனவே அறையில் இங்கே பெற்றோர்கள் கவர, CS50 நூலகம் என்ன?
[சிரிப்பு] நல்ல வேலை.
CS50 நூலகம் என்ன? Yeah. >> [மாணவர்] அது குறியீடு ஒரு முன் எழுதப்பட்ட ஜோடி [செவிக்கு புலப்படாமல்]
சரி, நல்ல.
அதை நாம் ஊழியர்கள் எழுதிய குறியீடு ஒரு முன் எழுதப்பட்ட ஜோடி, நாங்கள், நீங்கள் அளிக்கும்
என்று, சில பொதுவான செயல்பாடுகளை வழங்குகிறது
என்னை ஒரு சரம் கிடைக்கும் போன்ற விஷயங்களுடன், என்னை ஒரு முழு எண்ணாக - இங்கே பட்டியலிடப்பட்டுள்ளது என்று செயல்பாடுகளை அனைத்து.
>> இப்போது தொடங்கி, நாம் உண்மையில் இந்த பயிற்சி சக்கரங்கள் எடுக்க தொடங்கும்.
நாங்கள், நீங்கள் ஒரு சரம் எடுத்து ஆரம்பிக்க போகிறோம்
இது திரும்ப என்ன உண்மையான தரவு வகை ஒரு பொருள் இருந்தது? >> [பல மாணவர்கள்] சார் *.
கரி *. பெற்றோர்கள், அந்த ஒருவேளை [செய்கிறது ஷ்ஷ்ஷ் ஒலி] இருந்தது. நல்லது.
கரி * நாம், நமது சொல்லகராதி இருந்து சரம் நீக்க அனைத்து இன்னும் திரையில் பார்க்க ஆரம்பிப்போம்
உண்மையில் குறியீடு எழுதி அது வரும் குறைந்தபட்சம் போது.
இதேபோல், நாம் இந்த செயல்பாடுகளில் சில அளவுக்கு பயன்படுத்தி நிறுத்த வேண்டும்
நமது திட்டங்கள் இன்னும் அதிநவீன பெற போகிறோம் என்பதால்.
மாறாக தான், ஒரு வரியில் ஒளிரும் அங்கே உட்கார்ந்து நிரல்களை எழுத
ஏதாவது தட்டச்சு பயனர் காத்து, நீங்கள் வேறு உங்கள் உள்ளீடுகள் கிடைக்கும்.
உதாரணமாக, நீங்கள் உள்ளூர் நிலைவட்டில் பிட்கள் ஒரு தொடர் இருந்து வருகிறேன்.
நீங்கள் பதிலாக, ஒரு பிணைய இணைப்பு இருந்து எதிர்காலத்தில் அழைத்து வருகிறேன்
எங்கோ சில இணைய.
>> அதனால் முதல் முறையாக இந்த அடுக்கு தலாம் நாம் மற்றும் CS50 அப்ளையன்ஸ் மேலே
நீங்கள் # வாரங்கள் உட்பட வருகிறோம் எந்த cs50.h என்று இந்த கோப்பு,,
ஆனால் அது உண்மையில் இந்த உள்ளே என்ன என்று பார்ப்போம்.
நீல கோப்பின் மேல் தான் கருத்துக்கள் ஒரு மொத்தமாக உள்ளது:
உத்தரவாதத்தை தகவல் மற்றும் உரிமம்.
இந்த மென்பொருள் ஒரு பொதுவான முன்னுதாரணம் வகை
மென்பொருள் நிறைய இந்த திறந்த மூல என்று என்ன காரணம்,
இது யாரோ குறியீடு எழுதி அதை இலவசமாக கிடைக்க செய்யப்பட்டது என்று பொருள்
தான் இயக்க மற்றும் பயன்படுத்த ஆனால் உண்மையில் படித்து மாற்ற மற்றும் உங்கள் சொந்த வேலை தொகையிடும்.
அதனால் நீங்கள் ஒரு மிக சிறிய வடிவத்தில் என்றாலும், திறந்த மூல மென்பொருள் பயன்படுத்தி வருகிறோம் என்ன.
நான் கருத்துரைகள் கடந்த கீழே இருந்தால், எனினும், நாம் இன்னும் சில பழக்கமான விஷயங்களை பார்க்க ஆரம்பிப்பார்கள்.
Cs50.h கோப்பு தலைப்பு கோப்புகள் ஒரு மொத்தமாக கொண்டுள்ளது என்று இங்கே மேலே அறிவிப்பு.
இந்த மிக, நாம் பார்த்ததில்லை, ஆனால் ஒரு பழக்கமான.
இந்த இது நாம் இதுவரை, சுருக்கமாக என்றாலும், பார்த்தாயா? >> [மாணவர்] தரநிலை நூலகம்.
சரி, நிலையான நூலகம். stdlib.h malloc உள்ளது.
ஒருமுறை நாங்கள், மாறும் நினைவக ஒதுக்கீடு பற்றி பேச ஆரம்பித்துவிட்டார்கள்
நாம் அதே அடுத்த வாரம் திரும்பவும் வருவேன் அது, அந்த கோப்பு உட்பட தொடங்கியது.
இது bool மற்றும் உண்மையான மற்றும் பொய்யான உண்மையில் சி உள்ளபடியே இல்லை என்று மாறிவிடும்
நீங்கள் இங்கே இந்த கோப்பு அடங்கும் வரை.
நாம் வாரங்கள் stdbool.h உட்பட
நீங்கள் ஒரு, bool உண்மை அல்லது பொய். கருத்து பயன்படுத்த முடியும்
இந்த இல்லாமல், நீங்கள் போலி அது வரிசைப்படுத்த மற்றும் ஒரு முழு எண்ணாக பயன்படுத்த வேண்டும்
மற்றும் தன்னிச்சையாக 0 பொய் மற்றும் 1 உண்மை என்று வைத்து கொள்வோம்.
நாம் இன்னும் கீழே என்றால், இங்கே ஒரு சரம் எங்கள் வரையறை ஆகும்.
இந்த நட்சத்திரம் எங்கே உண்மையில் இல்லை என்று, நாங்கள் முன்பு சொன்னதை போல், மாறிவிடும்.
நீ சுற்றி இடைவெளி இருக்க முடியும்.
நாம் இந்த செமஸ்டர் தெளிவாக இந்த மேம்படுத்துவது
நட்சத்திரம், வகை செய்ய வேண்டும் என்று
இன்னும் கொஞ்சம் பொதுவான இல்லை என்றால் ஆனால், வெறும் பொதுவான உணர
அங்கு வைத்து தான், ஆனால் செயல்படவில்லை அதே விஷயம்.
நாம் இன்னும் கீழே படிக்க வேண்டும் ஆனால் இப்போது, தான் GetInt பாருங்கள் நாம்
நாம் வேறு எதையும் இந்த செமஸ்டர் முன் அந்த ஒருவேளை முதல் பயன்படுத்தப்படும் என்பதால்.
இங்கே GetInt உள்ளது. இது என்ன? >> [மாணவர்] ஒரு முன்மாதிரி. >> இது ஒரு முன்மாதிரி இருக்கிறது.
பொதுவாக, நாம் நம் டாப்ஸ் உள்ள முன்மாதிரிகளை விட்டீர்கள். கேட்ச் கோப்புகள்,
ஆனால் நீங்கள் இங்கே இது போன்ற தலைப்பு கோப்புகள்,. h கோப்புகள், உள்ள முன்மாதிரிகளை முடியும்
அதனால் நீங்கள் சில செயல்பாடுகளை எழுத போது, மற்ற மக்கள் பயன்படுத்த முடியும் வேண்டும் என்று
இது, சரியாக CS50 நூலகம் விஷயத்தில்
நீங்கள், cs50.c போல் உங்கள் செயல்பாடுகளை செயல்படுத்த மட்டும்
நீங்கள் இல்லை என்று கோப்பின் மேல் ஆனால் ஒரு தலைப்பு கோப்பு மேலே முன்மாதிரிகளை வைத்து.
பின்னர் அந்த தலைப்பு கோப்பு நண்பர்கள் மற்றும் சக அடங்கும் என்ன
உடன் # தங்கள் குறியீடு சேர்க்க.
இந்த நேரத்தில், நீ, இந்த முன்மாதிரிகளை அனைத்து உட்பட
இது உங்கள் கோப்பு மேலே ஆனால் இந்த மூலமாக #, அமைப்பு ஆகியவை அடங்கும்
உங்கள் சொந்த அவை அடிப்படையில் பிரதிகள் மற்றும் பசைகள் இந்த கோப்பு.
இங்கே சில மிகவும் விரிவான ஆவணங்கள் ஆகும்.
GetInt ஒரு முழு எண்ணாக வரும் என்று வழங்கப்பட்டது நாம் மிகவும் அதிகமாக எடுத்துள்ளேன்,
சில மூலையில் வழக்குகள் உள்ளன அவுட் ஆனால் அது மாறிவிடும்.
என்ன ஒரு quintillion, வழி மிக பெரிய என்று பல பயனர் வகைகள் என்றால்,
என்று ஒரு முழு எண்ணாக உள்ளே பொருந்தும் முடியாது? எதிர்பார்க்கப்படும் நடத்தை என்ன?
வெறுமனே, அதை யூகிக்கக்கூடிய தான்.
இந்த வழக்கில், நீங்கள் உண்மையில், நன்றாக அச்சு படிக்க வேண்டும்
நீங்கள் உண்மையில் அந்த வரியை படிக்க முடியாது என்றால், இந்த வருமானத்தை INT_MAX பார்க்கிறேன்.
நாம் இது பற்றி பேசினார், ஆனால் அதன் மூலதன அடிப்படையில், அது என்ன ஒருவேளை?
[மாணவர்] ஒரு நிலையான. >> இது ஒரு நிலையான தான்.
அது ஒருவேளை அந்த தலைப்பு கோப்புகள் ஒரு அறிவித்தார் என்று சில சிறப்பு நிலையான தான்
, கோப்பு வரை அதிக நேரம், மற்றும் INT_MAX சுமார் 2 பில்லியன் போன்ற ஒருவேளை ஏதாவது
நாம் எப்படியாவது என்று ஏதாவது குறிப்பிட்ட தேவை என்று அவர் யோசனை, தவறு
நாங்கள், ஆம், எங்கள் வசம் 4 பில்லியன் எண்கள் இல்லை: -2 பில்லியன் வரை 2 பில்லியன் மீது, கொடுக்க அல்லது எடுத்து.
சரி, என்ன நிரலாக்க பொதுவாக, நீங்கள் அந்த எண்கள் ஒரு திருட உள்ளது
ஒருவேளை 0, ஒருவேளை 2 பில்லியன், ஒருவேளை -2 பில்லியன்,
நீங்கள் உலக செய்வேன் என்று நீங்கள் சாத்தியமான மதிப்புகள் ஒரு செலவு
ஏதாவது தவறு நடந்தால் அது, நான் இந்த சூப்பர் பெரிய மதிப்பு வருவேன்.
ஆனால் நீங்கள் பயனர் 234 போன்ற ரகசிய ஏதாவது தட்டச்சு வேண்டாம் ..., உண்மையிலேயே பெரிய எண்.
நீங்கள் ஒரு நிலையான அதனை பொதுமைப்படுத்த.
நீங்கள் கடந்த சில வாரங்களில் குத இருந்தது என்றால் உண்மையில், எந்த நேரத்தில் நீங்கள், GetInt என்று
நிலை INT_MAX பயனர் வகை செய்தால் நீங்கள் ஒரு கொண்டு சோதனை வேண்டும்,
அல்லது, இன்னும் குறிப்பாக, அதை செய்தால் தான், GetInt மீண்டும் INT_MAX செய்தது,
உண்மையில் அவர்கள் அதை தட்டச்சு இல்லை என்பதாகும். ஏதோ இந்த விஷயத்தில் தவறு.
எனவே இது பொதுவாக ஒரு சிறப்பு அதாவது ஒரு காவலாளி மதிப்பு, என்று என்ன இருக்கிறது.
>> . கேட்ச் கோப்பு மாற்ற இப்போது நாம்.
சி கோப்பு சில நேரம் பயன்பாட்டிற்கான இருந்த.
மற்றும் உண்மையில், பயன்பாட்டிற்கான அது முன் தொகுக்கப்பட்ட நாம் பொருள் குறியீடு என்று அந்த விஷயத்தை பற்றி உங்களுக்கு உள்ளது
கணினி தெரியும், ஏனெனில் அது எங்கே ஆனால் அது உங்களுக்கு தேவையில்லை
இந்த வழக்கில் அது எங்கே: பயன்பாட்டிற்கான.
இந்த நேரத்தில் GetInt மற்றும் GetInt வேலை எப்படி பார்க்க இப்போது கீழே நாம்.
இங்கே நாம் முன்னர் இதே போன்ற கருத்துக்கள் உண்டு.
என்னை குறியீடு பகுதியில் பெரிதாக்க வேண்டும்.
மற்றும் நாம் GetInt செய்ய வேண்டும் பின்வரும் உள்ளது.
எந்த உள்ளீடு எடுக்கும்.
, அது (உண்மை) போது, ஒரு முழு எண்ணாக கொடுக்கிறது, நாம் வேண்டுமென்றே முடிவிலா சுழற்சி உள்ளது
ஆனால் மறைமுகமாக நாம் எப்படியாவது இந்த வெளியே உடைக்க அல்லது இந்த க்குள் திரும்பிவிடுவேன்.
>> அது எப்படி இந்த வேலை பார்க்கிறேன்.
நாம், லூப் உள்ளே இந்த முதல் வரிசையில் 166 GetString பயன்படுத்தி தெரிகிறது.
என்ன சூழ்நிலையில் GetString திரும்பி ஏனெனில் இந்த இப்போது நல்ல நடைமுறையில் உள்ளது
சிறப்பு சொல் NULL? >> [மாணவர்] ஏதாவது தவறு நேர்ந்தால்.
ஏதாவது தவறு நடந்தால். நீங்கள் GetString போன்ற ஏதாவது அழைப்பு தவறு என்ன?
Yeah. >> [மாணவர்] Malloc அதை ints கொடுக்க முடியவில்லை.
Yeah. ஒருவேளை malloc முடியவில்லை.
எங்கோ பேட்டை கீழ், GetString நினைவக ஒதுக்கீடு எந்த malloc, அழைப்பு
இதில் கதாபாத்திரங்கள் அனைத்தும் கணினி கடை உதவுகிறது
அந்த விசைப்பலகை கொண்டு பயனர் வகைகள்.
மேலும், பயனர் இலவச நேரம் ஒரு முழு நிறைய உதாரணமாக, இன்னும் தட்டச்சு வேண்டும்
கணினி விட பாத்திரங்கள், விட 2 பில்லியன் எழுத்துக்கள் கூட ரேம் உள்ளது.
GetString நீங்கள் அந்த குறிப்பிட்ட முடியும் உள்ளது.
இந்த ஒரு சூப்பர், சூப்பர் அசாதாரணமானது மூலையில் வழக்கில், கூட
இது, எப்படியாவது இந்த கையாள முடியும் வேண்டும்
அதனால் நாம் திரும்பி சென்று அதன் ஆவணங்களை படித்து இருந்தால், GetString, உண்மையில் வருவாய் NULL செய்யும்.
GetString NULL திரும்புவதன் மூலம் முடியவில்லை, எனவே இப்போது என்றால், GetInt INT_MAX திரும்புவதன் மூலம் தோத்துடுவாங்க
ஒரு காவலாளி என. இவை மனித மரபுகளை இருக்கும்.
இந்த வழக்கு என்று என்று ஒரே வழி ஆவணங்களை படித்து உள்ளார்.
>> Int உண்மையில் ஆயிற்று அமைந்துள்ள உருட்டலாம் நாம்.
நான் ஒரு பிட் மேலும் கீழே இருந்தால், வரி 170, நாம் இந்த வரிகளை மேலே ஒரு கருத்து உள்ளது.
நாம் 172 இல், பிறகு ஒரு முழு எண்ணாக, n, மற்றும் ஒரு கரி கேட்ச், மற்றும் இந்த புதிய செயல்பாடு, அறிவிக்க
நீங்கள் சில, sscanf முன் முழுவதும் தடுமாறின.
இந்த சரம் scanf குறிக்கிறது.
வேறுவிதமாக கூறினால், என்னை ஒரு சரம் கொடுக்க நான் வட்டி தகவல் துண்டுகளை அதை ஸ்கேன் செய்யும்.
இதற்கு என்ன அர்த்தம்?
நான் Enter விசையை பின்னர் விசைப்பலகை மணிக்கு 123, உண்மையில், தட்டச்சு மற்றும் நினைக்கிறேன்.
GetString மூலம் திரும்பிய போது 123 தரவு வகை என்ன? >> [மாணவர்] சரம்.
அது சரி, வெளிப்படையாக ஒரு சரம் இருக்கிறது? நான் ஒரு சரம் கிடைத்தது.
அதனால் 123, உண்மையில் நான், மேற்கோள், அது இறுதியில் \ 0 123 ஆகும்.
என்று ஒரு முழு எண்ணாக இல்லை. ஒரு எண் அல்ல. இது பல தெரிகிறது ஆனால் உண்மையில் இல்லை.
அதனால் என்ன GetInt செய்ய வேண்டும்?
123 \ 0 - - மற்றும் எப்படியோ ஒரு உண்மையான முழு மாற்ற அது வலது இடது என்று சரம் ஸ்கேன் செய்ய வேண்டும்.
நீங்கள் இதை செய்ய எப்படி கண்டுபிடிக்க முடியும்.
நீங்கள் pset2 திரும்ப நினைத்தால், நீங்கள் மறைமுகமாக சீசர் ஒரு சிறிய வசதியாக கிடைத்தது
அல்லது வைஜெனேர், நீ ஒரு சரம் மீது மீண்டும் கூறு முடியாது, நீங்கள் ints செய்ய எழுத்துகள் மாற்ற முடியும்.
ஆனால் கர்மம், அது வேலை ஒரு முழு நிறைய.
ஏன் அந்த என்று sscanf போன்ற ஒரு செயல்பாடு அழைக்க கூடாது?
எனவே sscanf ஒரு வாதம் எதிர்பார்க்கிறது - இந்த வழக்கில் வரி ஒரு சரம் ஆகும், என்று.
நீ இந்த சரம் பார்க்கும் எதிர்பார்க்க என்ன, மிகவும் ஒத்த வேண்டும் printf, மேற்கோளில் குறிப்பிடவும்.
என்ன நான் இங்கே சொல்கிறேன் நான் ஒரு தசம எண் மற்றும் ஒருவேளை ஒரு பாத்திரம் பார்க்க எதிர்பார்க்க உள்ளது.
இந்த ஒரு நொடியில் வழக்கு ஏன் நாம் பார்க்க வேண்டும்.
அது இந்த குறியீடு, இப்போது பொருள் நினைவூட்டும் என்று மாறும் நாம் பற்றி பேச ஆரம்பித்துவிட்டார்கள்
ஒரு வாரம் முன்பு.
என்ன & n மற்றும் & கேட்ச் இங்கே நமக்கு என்ன? >> [மாணவர்] n, முகவரி மற்றும் கேட்ச் முகவரி.
Yeah. அது என்னை கேட்ச், n மற்றும் முகவரி முகவரியை கொடுக்கிறாள். ஏன் அவசியம்?
நீங்கள் சி செயல்பாடுகளை கொண்டு, நீங்கள் எப்பொழுதுமே ஒரு மதிப்பு அல்லது மதிப்பை திரும்ப முடியும் என்று.
நீங்கள் ஒரு முழு எண்ணாக, ஒரு சரம், ஒரு மிதவை, ஒரு கரி, என்ன, அல்லது நீங்கள் வெற்றிடத்தை திரும்ப முடியும், திரும்ப முடியும்
ஆனால் நீங்கள் மட்டும் அதிகபட்சம் ஒன்று திரும்ப முடியும்.
ஆனால் இங்கே நாம் sscanf ஒருவேளை ஒரு முழு எண்ணாக, ஒரு தசம எண், என்னை திரும்ப வேண்டும்
மேலும் ஒரு கரி, மற்றும் நான் ஒரு நொடியில் ஏன் எரிப்பதை விளக்க வேண்டும்.
நீங்கள் திறம்பட sscanf இரண்டு விஷயங்கள் திரும்ப வேண்டும், ஆனால் அந்த சி வெறும் முடியாது
நீங்கள் இரண்டு முகவரிகள் கடந்து செல்லும் அந்த பணிபுரிய முடியும்
விரைவில் நீங்கள் ஒரு விழாவில் இரண்டு முகவரிகள் கொடுத்துவிடலாம் ஏனெனில்,
அந்த செயல்பாடு இன்னும் என்ன செய்ய முடியும்? >> [மாணவர்] அந்த முகவரிக்கு எழுதுங்கள்.
அந்த முகவரிகள் எழுத முடியும்.
நீங்கள் நட்சத்திரம் நடவடிக்கையை பயன்படுத்தி அந்த முகவரிகள் ஒவ்வொன்றுக்கும், அங்கு செல்ல முடியும்.
இது மாறிகளின் மதிப்புகளை மாற்றுவதற்கு மாதிரியான மீண்டும் கதவை இயக்கவியல் ஆனால் மிகவும் பொதுவாக
இந்த வழக்கில், இரண்டு - ஒரு இடத்தில் விட.
இப்போது நான் == 1 சரிபார்ப்பு பின்னர் அந்த உண்மையில், உண்மையான மதிப்பீடு என்றால் n திரும்பி பார்க்க.
அதனால் என்ன நடக்கிறது? தொழில்நுட்ப, நாம் உண்மையில் GetInt நடக்க வேண்டும் இதெல்லாம்.
ஆனால், மேற்கோள் 123 - நாம் பேச, அலச வேண்டும், நாம் சரம் படிக்க வேண்டும் -
நாம் செய்ய sscanf சொல்கிறாய் என்ன ஒரு எண், அங்கு போல் தெரிகிறது என்றால்
இந்த மாறி n எனக்கு - 123 - அந்த எண்ணை வைத்து.
ஏன் நான் உண்மையில் இந்த அதே இருக்கிறது?
நீங்கள் இங்கே ஒரு பாத்திரம் வந்துவிடும் என்று sscanf பங்கு என்ன?
[செவிக்கு புலப்படாமல் மாணவர் பதில்] >> ஒரு தசம புள்ளி உண்மையில் வேலை முடியும்.
ஒரு கணம் நினைத்து தான் நடத்த வேண்டும். வேறு என்ன?
[மாணவர்] அது NULL இருக்க முடியும். >> நல்ல சிந்தனை. அது வெற்று தன்மை இருக்க முடியும்.
இந்த வழக்கில் உண்மையில் இல்லை. Yeah. >> [மாணவர்] ஆஸ்கி.
ASCII. அல்லது என்னை மேலும் பொதுமைப்படுத்த நாம்.
அங்கு% கேட்ச் தான் பிழை சோதனை உள்ளது.
நாம், எண் பிறகு ஒரு பாத்திரத்தில் இருக்கும் விரும்பவில்லை
ஆனால் என்ன இது எனக்கு செய்ய அனுமதிக்கிறது பின்வரும் உள்ளது.
அது sscanf, இங்கே இந்த எடுத்துக்காட்டாக n மற்றும் கேட்ச் உள்ள மதிப்புகள் சேமித்து தவிர, மாறிவிடும்
இது இது மாறிகள் எண்ணிக்கை கொடுக்கிறது என்பது என்ன, அது உள்ளே மதிப்புகள் வைத்து
நீங்கள் மட்டும் 123 தட்டச்சு என்றால், பிறகு மட்டுமே% d பொருத்த நடக்கிறது
மற்றும் n, 123 போன்ற ஒரு மதிப்பு சேமிக்கப்பட்ட
மற்றும் எதுவும் கேட்ச் வைக்க.
சி, அதனால் பேச, ஒரு குப்பை மதிப்பு உள்ளது -
குப்பை ஏனெனில் அது சில மதிப்பு துவக்கப்படும்.
நான், அந்த பாயிண்டர்களின் 1 மக்கள் ஏனெனில் அந்த வழக்கில், sscanf 1 கொடுக்கிறது
நான் நினைவக வரை விடுவிக்க வரி விடுவித்து மிக பெரும் வழக்கில், நான் ஒரு முழு எண்ணாக இல்லை
அந்த GetString உண்மையில் ஒதுக்கீடு, மற்றும் நான், n திரும்ப
அந்த அறிக்கையில் இருந்து வருகிறது மறுமுயற்சி நீங்கள் எப்போதும் வியந்து வேறு, அது இங்கேயே இருந்து வருகிறது.
நீங்கள், இதற்கு மாறாக, நான் 123foo தட்டச்சு - உரை சில சீரற்ற வரிசையில் -
sscanf எண், எண், எண், ஊ, பார்க்க போவது
அதை n இல் 123 வைக்க நடக்கிறது; அதை கேட்ச் f ஆனது வைத்து பின்னர் 2 திரும்ப நடக்கிறது.
எனவே தான் sscanf நடத்தை, ஒரு மிக எளிய வழி அடிப்படை வரையறையை பயன்படுத்தி, இல்லை -
நன்றாக, முதல் பார்வையில் ஆனால் நாள் மிகவும் எளிமையான வழிமுறை இறுதியில் சிக்கலான -
என்று ஒரு முழு எண்ணாக இருக்கிறது மற்றும் நீங்கள், என்று நான் இல்லை என்று மட்டும் தான்?
இங்கு இடைவெளி வேண்டுமென்றே உள்ளது.
நீங்கள் sscanf ஆவணத்தை வாசிக்க இருந்தால், அதை நீங்கள் இடைவெளி ஒரு பகுதி ஆகியவை அடங்கும் என்று நீங்கள் சொன்னால்
தொடக்கத்தில் அல்லது இறுதியில், sscanf கூட, எந்த காரணத்திற்காகவும், பயனர் அனுமதிக்கும்
தட்டுப்பட்டை 123 அடிக்க மற்றும் முறையான இருக்கும்.
அவர்கள் தட்டுப்பட்டை ஹிட் தான் நீங்கள் பயனர் கத்துகிறாய்
தொடக்கத்தில் அல்லது இறுதியில், இது பயனர் நட்பு கொஞ்சம் அதிகம்.
>> பின்னர் எந்த கேள்விகளுக்கும் GetInt மீது? Yeah. >> [மாணவர்] நீங்கள் ஒரு கரி போட்டு என்றால் என்ன?
கேள்வி நல்ல.
நீங்கள் என்ன வெறும் f போன்ற எரிப்பதை தட்டச்சு மற்றும் இதுவரை 123 தட்டச்சு இல்லாமல் Enter விசையை என்றால்?
நீங்கள் குறியீடு இந்த வரி நடத்தை பிறகு என்ன நினைக்கிறீர்கள்?
[செவிக்கு புலப்படாமல் மாணவர் பதில்]
அந்த வழக்கில், அதை n அல்லது கேட்ச் நிரப்ப போவது இல்லை, ஏனெனில் அப்படியா sscanf அதுவும் மறைக்க முடியாது.
இது வழக்கு இதில் நான் அந்த காட்சியில் கவரும் நான் பதிலாக, 0 திரும்ப நடக்கிறது
நான் எதிர்பார்த்த மதிப்பு 1 என்பதால்.
நான் ஒரே ஒரு வேண்டும் மற்றும் ஒரே ஒரு விஷயம் பூர்த்தி செய்ய வேண்டும். கேள்வி நல்ல.
>> மற்றவர்களுக்கு? எல்லாம் சரி.
>> இங்கே உள்ள செயல்பாடுகளை அனைத்து வழியாக சென்று நாம்,
ஆனால் மீதமுள்ள வட்டி ஒருவேளை தெரிகிறது என்று ஒரு GetString உள்ளது
இது GetLongLong, GetFloat, GetInt, GetDouble என்று திருப்பி ஏனெனில்
அனைத்து பந்தயம் GetString அவர்களின் செயல்பாடு நிறைய.
எனவே அவர் இங்கே செயல்படுத்தப்படும் என்பதை பாருங்கள் நாம்.
இந்த ஒரு சிறிய சிக்கல் இருக்கிறது, ஆனால் அது அதே அடிப்படைகள் பயன்படுத்துகிறது
நாம் கடந்த வாரம் பற்றி பேச ஆரம்பித்துவிட்டார்கள் என்று.
GetString உள்ள, இது வரை இங்கே வெற்றிடத்தை படி இல்லை வாதத்தை எடுத்து
அதை நான் வெளிப்படையாக இடையக என்று ஒரு சரம் அறிவித்தார் நான், ஒரு சரம் கொடுக்கிறது.
நான் இன்னும் பயன்படுத்த வேண்டும் என்ன நடக்கிறது என்று எனக்கு தெரியாது, ஆனால் நாம் பார்க்க வேண்டும்.
திறன் முன்னிருப்பு 0 மூலம் தெரிகிறது.
இல்லை நிச்சயமாக இந்த n இன்னும் பயன்படுத்த போகிறது என்று உறுதி, இல்லை என்று,
ஆனால் இப்போது அது கொஞ்சம் சுவாரசியமான போகிறது.
வரி 243, நாம் ஒரு முழு எண்ணாக, கேட்ச் அறிவிக்க.
இந்த ஒரு முட்டாள் விவரம் வகை.
ஒரு எரிப்பதை 8 பிட்கள் மற்றும் 8 பிட்கள் எப்படி பல மதிப்புகள் சேமிக்க முடியும்? >> [மாணவர்] 256. >> 256.
நீங்கள் உள்ளன 256 வெவ்வேறு ASCII எழுத்துகள், வேண்டும் என்றால் பிரச்சனை
நீங்கள் திரும்ப நினைத்தால் - இந்த நினைவில்கொள்ள ஒன்று அல்ல.
நீ பெரிய ஆஸ்கி விளக்கப்படம் திரும்ப நினைத்தால் ஆனால் நாம் வாரங்கள் முன்பு இருந்தது,
128 அல்லது 256 ASCII எழுத்துக்களை அந்த வழக்கில் இருந்தன.
நாம் 0 க்கள் மற்றும் 1 வி வரை அனைத்து வடிவங்களையும் பயன்படுத்தலாம்.
நீங்கள் ஒரு பிழை கண்டுபிடிக்க முடியும் விரும்பினால் ஒரு பிரச்சினை
நீங்கள் ஏற்கனவே உங்கள் பாத்திரங்களின் 256 மதிப்புகள் பயன்படுத்தி என்றால், ஏனெனில்,
இப்போது நீங்கள் சொல்வது எந்த வகையில் ஏனெனில் நீங்கள் உண்மையில், மேலே ஏற்பாடு செய்யவில்லை
இந்த ஒரு முறைப்படியாக பாத்திரம் அல்ல, இந்த சில பிழையான செய்தி.
அதனால் என்ன உலகம் இல்லை அவர்கள் அடுத்த பெரிய மதிப்பு, ஒரு முழு எண்ணாக போல, பயன்படுத்த உள்ளது
நீங்கள் 4 பில்லியன் முடியும் மதிப்புகள், துணுக்குகள், 32 ஒரு பைத்தியம் எண் என்று
நீங்கள் சாதாரணமாக, அடிப்படையில் 257 அவர்களை பயன்படுத்தி முடிவுக்கு முடியும்
1 இது ஒரு பிழை என சில சிறப்பு பொருள் உள்ளது.
>> எனவே எப்படி இந்த வேலை பார்க்கிறேன்.
வரி 246 இல், நான், fgetc அழைப்பு என்று இந்த பெரிய போது வளைய வேண்டும்
f பொருள் கோப்பு, மிகவும் getc, பின்னர் stdin.
இது வெறும் விசைப்பலகை உள்ளீடு படிக்க சொல்லி இன்னும் துல்லியமான வழி நடக்கிறது.
நிலையான உள்ளீட்டு அதாவது விசைப்பலகை, நிலையான வெளியீடு, திரை பொருள்
நாம் pset4 உள்ள பார்க்கிறேன் இது நிலையான பிழை, திரை பொருள்
ஆனால் அது உண்மையான வெளியீட்டை திரையில் ஒரு சிறப்பு பகுதியாக இணைத்து இல்லை என்று
நீங்கள் அச்சிட நோக்கம் என்று. எதிர்காலத்தில் அது இன்னும்.
எனவே fgetc வெறும் விசைப்பலகை இருந்து ஒரு பாத்திரம் படித்து எங்கே சேமிக்க வேண்டும்?
கேட்ச் அதை சேமிக்க.
பின்னர் சரிபார்க்கவும் - மிகவும் நான் இங்கே சில பூலியன் இணைப்புச்சொற்கள் பயன்படுத்தி நான் -
அது சமமாக இல்லை என்பதை சரிபார்க்க - \ n அதனால் பயனர் உள்ளிடவும் தாக்கியது, நாம் அந்த கட்டத்தில் நிறுத்த வேண்டும்,
ஓட்டையை முடிவுக்கு - நாம் மேலும் சிறப்பு நிலையான EOF சோதிக்க வேண்டும்,
உங்களுக்கு தெரியும் அல்லது நினைக்கிறேன் என்றால், அது என்ன இது நிற்க? கோப்பு >> [மாணவர்] முடிவு. கோப்பு >> முடிவு.
இந்த வகையான அறிவுப்பூர்வமாக ஏனெனில் நான் விசைப்பலகை உள்ள தட்டச்சு செய்கிறேன் என்றால்,
இந்த தொடர்பு இல்லை கோப்பு, உண்மையில் அங்கு
ஆனால் இந்த குறிக்கும் பொதுவான கால வரிசைப்படுத்த
வேறு எதுவும் மனித விரல்கள் இருந்து வருகிறது.
EOF - கோப்பு இறுதியில்.
நீங்கள் எப்போதும் உங்கள் விசைப்பலகை உள்ள கட்டுப்பாடு டி ஹிட் தான் என்று ஒரு ஒதுக்கி, நீங்கள் இன்னும் வேண்டும் இல்லை என்று -
நீங்கள் கட்டுப்பாடு சி வெற்றி - கட்டுப்பாடு டி EOF என்று இந்த சிறப்பு நிலையான அனுப்புகிறது.
எனவே இப்போது நாம் சில மாறும் நினைவக ஒதுக்கீடு இல்லை.
>> நீங்கள் (n + 1> திறன்). இப்போது நான் n விளக்க வேண்டும்.
N தான் எவ்வளவு பைட்டுகள், இடையகம் தற்போது
நீங்கள் தற்போது பயனர் இருந்து கட்டிட என்று சரம்.
நீங்கள் பஃப்பரில் திறன் விட உங்கள் இடையகம் மேலும் எழுத்துக்கள் இருந்தால்,
உள்ளுணர்வாக நாம் செய்ய வேண்டியது மிகவும் திறன் ஒதுக்க வேண்டும்.
அதனால் நான் இங்கே கணித சில மீது ஆடையெடு இங்கு மட்டுமே இந்த விழாவில் கவனம் செலுத்த போகிறேன்.
நீங்கள் malloc என்ன தெரியுமா அல்லது குறைந்தபட்சம் பொதுவாக தெரிந்திருந்தால்.
Realloc என்ன ஒரு யூகம் எடுத்து. >> [மாணவர்] நினைவக சேர்க்கிறது.
இது நினைவக சேர்த்து இல்லை. அது பின்வருமாறு நினைவக reallocates.
நீங்கள் அந்த நினைவகம் இன்னும் கொடுக்க சரம் இறுதியில் அறையில் இன்னும் இருந்தால்
அதை முதலில் நீங்கள் கொடுக்கும் விட, நீங்கள் கூடுதல் மெமரி கிடைக்கும்.
எனவே நீங்கள் மீண்டும் மீண்டும் மீண்டும் மீண்டும் சரம் பாத்திரங்கள் வைத்து கொள்ள முடியும்.
அந்த வழக்கு இல்லையென்றால் ஆனால் நீங்கள் நீண்ட காத்திருந்தனர் ஏனெனில்
மற்றும் சீரற்ற ஏதோ நினைவாக plopped
ஆனால் கூடுதல் நினைவகம் இங்கு இல்லை, நல்லது.
Realloc, நீங்கள் அனைத்து கனரக தூக்கும் பயிற்சி செய்ய போகிறாள்
நீங்கள் இதுவரை இங்கே இருந்து படித்த சரம் நகர்த்த அங்கு கீழே போட்டு,
பின்னர் நீங்கள் அந்த இடத்தில் சில விமான கொடுக்க.
>> அதனால் கையில் ஒரு அலை கொண்டு, என்னை என்ன GetString செய்து என்று சொல்கிறேன்
இது ஒரு சிறிய தாங்கல், ஒருவேளை ஒரு ஒற்றை தன்மை, தொடங்கும்
இரண்டு எழுத்துக்கள் பயனர் வகைகள் என்றால், GetString realloc அழைப்பு நிறைவடைகிறது மற்றும் நிதி
ஒரு பாத்திரத்தில் தேவையான அளவு இல்லை; எனக்கு இரண்டு எழுத்துக்கள் கொடுக்க.
நீங்கள் வளைய தர்க்கம் மூலம் படித்து பின்னர், அது என்ன நடக்கிறது
3 கதாபாத்திரங்கள் தட்டச்சு பயனர்;, இப்போது இல்லை 2 ஆனால் 4 எழுத்துக்கள் என்னிடம்
பிறகு என்னை 16 மற்றும் 32 கொடுக்க பிறகு, என்னை 8 கொடுக்க.
நான் திறன் ஒவ்வொரு முறையும் இரட்டிப்பாக்க என்று நான் உண்மையில்
தாங்கல் மெதுவாக வளர போவதில்லை என்று அர்த்தம், அது சூப்பர் வேகமாக வளர நடக்கிறது.
என்ன அந்த பயன்படுத்தி இருக்கலாம்?
நான் ஏன் இடையக அளவு இருமடங்காக
பயனர் விசைப்பலகை இருந்து ஒரு கூடுதல் பாத்திரத்தில் வேண்டும் கூட?
[செவிக்கு புலப்படாமல் மாணவர் பதில்] >> என்று என்ன? >> [மாணவர்] நீங்கள் அடிக்கடி வளர இல்லை.
சரியாக. நீங்கள் அடிக்கடி வளர இல்லை.
இந்த நீங்கள் மட்டும் என்ன ஆகும், இங்கே உங்கள் சவால் இழப்பு
யோசனை அது மெதுவாக ஏனெனில் நீங்கள் realloc நிறைய அழைக்க வேண்டாம் என்று இருப்பது.
நீங்கள், நினைவகத்தை இயக்க அமைப்பு ask எந்த நேரம்
நீங்கள் விரைவில் ஒரு எதிர்கால பிரச்சனை தொகுப்பில் பார்க்கலாம், அது சில நேரம் எடுத்து முனைகிறது.
அதனால் சில இடங்களில் வீணாக்குகிறாய் கூட, நேரம் என்று அளவு குறைத்தல்,
ஒரு நல்ல விஷயம் இருக்கிறது.
>> ஆனால் நாம் இங்கு GetString இறுதி பகுதி வழியாக படிக்க வேண்டும் -
மீண்டும் இங்கே ஒவ்வொரு வரியை புரிந்து இன்று மிகவும் முக்கியம் இல்லை -
அது இறுதியில் மீண்டும் malloc அழைக்கும் அறிவிப்பு
இது சரம் செய்ய வேண்டும் என அது பல பைட்டுகள் போலவே ஒதுக்கீடு
பின்னர் இலவச அதிகமான பெரிய இடையக அழைத்து தூக்கி எறியும்
இது உண்மையில் பல முறை இரு மடங்காக இருந்தது.
எனவே குறுகிய காலத்தில், அந்த GetString அனைத்து இந்த நேரம் உழைக்கும் வருகிறது எப்படி.
அனைத்து இது, மீண்டும், மீண்டும், மீண்டும் ஒரு நேரத்தில் ஒரு பாத்திரம் வாசிக்க
மற்றும் சில கூடுதல் நினைவகம் தேவை ஒவ்வொரு முறையும், அது இயங்கு கேட்கும்
realloc அழைப்பு விடுத்தார்.
>> எந்த கேள்விகள்? எல்லாம் சரி.
>> ஒரு தாக்குதல்.
, இப்போது நாம் சுட்டிகள் புரிந்துகொள்ள அல்லது குறைந்தபட்சம் சுட்டிகள் அதிகரித்தது தெரிந்திருந்தால்
உலகம் முழுவதும் விழுந்துவிடும் தொடங்குகிறது எப்படி என்று பார்ப்போம்
நீங்கள் மிகவும் adversarial செய்த எதிராக பாதுகாக்க என்றால்,
உங்கள் அமைப்பில் ஹேக் முயற்சி நபர்களை,
சில பதிவு குறியீடு சுற்றிவளைக்கும் உங்கள் மென்பொருள் திருட முயற்சி மக்கள்
அவர்கள் இல்லையென்றால் இன்னும் தட்டச்சு செய்ய வேண்டும் என்று
>> கீழே உள்ள முக்கிய செயல்பாடு என்று மட்டும் சி குறியீடு உள்ளது, இங்கு இந்த உதாரணம் பாருங்கள்
என்று ஒரு செயல்பாடு foo அழைப்பு விடுத்துள்ளது. என்ன இது foo செய்ய போகிறது?
[மாணவர்] ஒரு ஒற்றை வாதம். >> [Malan] ஒரு ஒற்றை வாதம்.
எனவே argv [1], இது பயனர் கட்டளை வரியில் தட்டச்சு முதல் வார்த்தை பொருள்
a.out அல்லது அதை பிறகு திட்டம் என்று அழைக்கப்படுகிறது.
மேலே foo என்பது ஒரு கரி * எடுத்து மிகவும். ஆனால் எரிப்பதை * தான் என்ன? >> [மாணவர்] ஒரு சரம்.
[Malan] ஒரு சரம், புதிய எதுவும் இங்கு இல்லை அதனால்.
அந்த சரம் தன்னிச்சையாக பார் என்று.
இங்கே இந்த வரிசையில், கரி கேட்ச் [12]; அரை தொழில்நுட்ப ஆங்கிலம் வகையான இல், இந்த வரி என்ன செய்கிறார்?
ஒரு [மாணவர்] ஒரு வரிசை - பல >> அணி? >> [மாணவர்] எழுத்துக்கள். >> எழுத்துக்கள்.
எனக்கு 12 எழுத்துக்கள் ஒரு வரிசை கொடுக்க. எனவே நாம் இந்த இடையக கூப்பிடுகிறேன்.
இது தொழில்நுட்ப கேட்ச் என்று, ஆனால் நிரலாக்க ஒரு இடையக ஒரு இடத்தில் ஒரு கூட்டத்தை பொருள்
நீங்கள் சில விஷயங்களை உள்ளே போட முடியும்
பின்னர் இறுதியாக, memcpy நாம் பயன்படுத்தும், ஆனால் ஒருவேளை நீங்கள் அதை என்ன யூகிக்க முடியும்.
அதை நினைவு நகலெடுக்கிறது. அது என்ன?
அதை வெளிப்படையாக கேட்ச் நுழைந்து, அதன் உள்ளீடு, பட்டியில் நகலெடுக்கிறது ஆனால் மட்டுமே பட்டியில் நீளம்.
ஆனால் இங்கே ஒரு பிழை உள்ளது. >> [மாணவர் நீங்கள் sizeof தன்மை வேண்டும். சரி >>.
தொழில்நுட்ப, நாம் உண்மையில் strlen செய்ய (பார்) * sizeof (கரி)). வேண்டும் அது சரியானது.
ஆனால் இங்கே மிக மோசமான நிலையில், அது அந்த that's நாம் கருதி கொள்வோம் -
சரி. பின்னர் இரண்டு பிழைகள் உள்ளன.
எனவே sizeof (கரி));
இந்த ஒரு சிறிய பரந்த செய்யலாம்.
எனவே இப்போது என்ன இது ஒரு பிழை, இன்னும்? >> [செவிக்கு புலப்படாமல் மாணவர் பதில்]
என்ன சோதனை? >> [மாணவர்] NULL சரிபார்க்கவும்.
கெட்ட விஷயங்கள் நடக்கும் ஏனென்றால் நாம் பொதுவாக NULL சரிபார்ப்பு
நீங்கள், அங்கே கூடும் என்பதால் உங்கள் சுட்டிக்காட்டி NULL போது
மற்றும் நீ நட்சத்திரம் ஆபரேட்டர் அதை dereferencing மூலம் பூஜ்ய போகிறது.
எனவே நல்லது. நாம் வேறு என்ன செய்கிறீர்கள்? தர்க்கரீதியாக, ஒரு குறைபாடு கூட இங்கே இல்லை.
[மாணவர்] argc> = 2 என்று பாருங்கள்.
Argc> = 2 இருந்தால், அதனால் சோதனை. சரி, இந்த திட்டம் மூன்று பிழைகள் இங்கே இல்லை, அதனால்.
பயனர் உண்மையில் argv கொண்டு எதையும் தட்டச்சு நாம் இப்போது பரிசீலித்துக்கொண்டிருக்கிறோம் [1]. நல்ல.
எனவே மூன்றாவது பிழை என்ன? Yeah. >> [மாணவர்] சி போதுமான பெரிய இருக்கலாம்.
நல்ல. நாம் ஒரு காட்சியில் சோதிக்கப்பட்டது.
நாம் உட்குறிப்பாக பட்டியில் நீளம் அதிகமாக விட அதிகமாக நினைவகம் நகலெடுக்க வேண்டாம் சோதிக்கப்பட்டது.
எனவே சரம் என்றால் தட்டச்சு பயனர் 10 எழுத்துக்கள் நீளமாக உள்ளது,
இந்த 10 எழுத்துக்களை நகலெடுக்க சொல்கிறார்கள். மற்றும் நல்லது.
ஆனால் பயனர் 20-தன்மை வார்த்தை போன்ற வரியில் ஒரு வார்த்தை என்ன தட்டச்சு செய்வது?
இந்த என்ன என்ற பட்டியில் இருந்து நகல் 20 எழுத்துக்கள் சொல்கிறார்?
மற்றபடி எங்கள் இடையக எனப்படும் சி,, இதில் நீங்கள் தரவு எழுதினார் பொருள்
நீங்கள் சொந்த வேண்டாம் என்று 8 பைட் இடங்களுக்கு,
நீங்கள் அவர்களுக்கு ஒதுக்கப்பட்ட இல்லை என்ற அர்த்தத்தில் அவர்கள் சொந்தமாக இல்லை.
இந்த பொதுவாக இடையக வழிதல் தாக்குதல் அல்லது இடையகம் மிஞ்சு தாக்குதல் என்று என்ன இருக்கிறது.
அது பொருளில் ஒரு தாக்குதல் என்று இருந்தால், பயனர் அல்லது உங்கள் செயல்பாடு என்று அந்த திட்டம்
உண்மையில் அடுத்து என்ன நடக்கும், தவறாக இதை உண்மையில் மிக மோசமான இருக்க முடியும்.
>> எனவே இந்த படத்தை பாருங்கள் நாம்.
இந்த படம் நினைவகம் உங்கள் ஸ்டேக் பிரதிபலிக்கிறது.
நீங்கள் ஒரு செயல்பாடு என்று ஒவ்வொரு முறையும் நீங்கள் ஸ்டேக் இந்த சிறிய சட்ட கிடைக்கும் என்று நினைவு
பின்னர் மற்றொரு பின்னர் மற்றொரு மற்றொரு.
மற்றும் இதுவரை, நாம் மட்டும் என்ன இருக்கிறது இந்த செவ்வகங்கள் என்று எண்ணக்கூடிய
குழு அல்லது இங்கே திரையில் ஒன்று.
ஆனால் நாம் ஒரு செயல்பாடு foo அழைக்க போது அந்த செவ்வக ஒரு அன்று பெரிதாக்க என்றால்,
இன்னும் அந்த செவ்வகத்தின் என்று சட்டம் ஸ்டேக் உள்ளே இருக்கும் என்று மாறும்
விட நாம் இடமாற்று பற்றி போல் தான் x மற்றும் y மற்றும் a மற்றும் b.
சில குறைந்த அளவிலான விவரங்களை திரும்ப முகவரி அவர்கள் மத்தியில், அங்கு அவுட் சுழல்கிறது.
முக்கிய foo அழைத்தால், அது மாறிவிடும், முக்கிய foo தெரிவிக்க வேண்டும்
என்ன முக்கிய முகவரி கணினியின் நினைவகம் உள்ளது
இல்லையெனில், ஏனெனில், விரைவில் foo என, இங்கே இந்த வழக்கில் என, இயக்கும் செய்யப்படுகிறது
ஒரு முறை நீங்கள், foo இறுதியில் இந்த மூடிய சுருள் பிரேஸ் அடைய
நிரல் கட்டுப்பாட்டை செல்லவேண்டும் அமைந்துள்ள எப்படி கர்மம் foo தெரியும்?
அந்த கேள்விக்கு பதில் இங்கே இந்த சிவப்பு செவ்வகம் உள்ளது என்று கூறினார்.
இந்த ஒரு சுட்டிக்காட்டி பிரதிபலிக்கிறது, அதை தற்காலிகமாக சேமிக்க கணினி வரை தான்
என்று அழைக்கப்படும் ஸ்டேக்கில் அதனால் விரைவில் foo என முக்கிய முகவரி இயக்கும் செய்யப்படுகிறது,
கணினி அங்கு செல்ல முக்கிய என்ன வரி தெரியும்.
சேமித்த சட்டத்தை சுட்டிக்காட்டி இந்த ஒத்த தொடர்புடையது.
இங்கே எரிப்பதை * பட்டியில் என்ன பிரதிபலிக்கிறது?
இப்போது இந்த நீல பிரிவில் இங்கே foo சட்டத்தில் உள்ளது. பார் என்ன?
பட்டியை மட்டும் foo செயல்பாடு வாதம் ஆகும்.
எனவே இப்போது நாம் நன்கு படம் வகையான திரும்பி இருக்கிறது.
திரையில் அதிக பொருள் மற்றும் திசைதிருப்பல்கள், அங்கு
ஆனால் இந்த ஒளி நீல பிரிவில் தான் நாம் சாக்போர்டு மீது வரைந்து கொண்டிருக்கிறேன் என்ன
இடமாற்று போன்ற ஏதாவது. அந்த foo ஒரு சட்டம் உள்ளது.
அது மட்டும் தான் இப்போது இந்த அளவுரு இது, பட்டியில் உள்ளது.
ஆனால் வேறு என்ன இங்கே இந்த குறியீடு படி ஸ்டாக் இருக்க வேண்டும்?
[மாணவர்] எரிப்பதை கேட்ச் [12]. >> [Malan] எரிப்பதை கேட்ச் [12].
நாங்கள், கேட்ச் எனப்படும் ஒரு மாறுபடும் ஒதுக்கப்பட்ட நினைவகத்தை 12 சதுரங்கள் பார்க்க வேண்டும்
உண்மையில் நாம் திரையில் என்று இல்லை.
மிக சிறந்த உள்ளது கேட்ச் [0] இந்த வரைபடத்தில், பின்னர் ஆசிரியர்
சதுரங்கள் அனைத்து வரைய கவலை, ஆனால் அங்கு 12 உண்மையில் இல்லை
ஏனெனில் நீங்கள் கீழே வலது பார் என்றால், கேட்ச் [11] நீங்கள் 0 இருந்து கணக்கில் இருந்து 12 அத்தகைய பைட் ஆகும்.
ஆனால் இங்கே பிரச்சினை.
கேட்ச் எந்த திசையில் வளர்ந்து வருகிறது?
வரிசை அது மேலே தொடங்கி கீழே வளரும் என்றால் மேலிருந்து ஒரு.
நாம் இங்கே நம்மை மிகவும் விமான விட்டு போல் இது இல்லை.
நாம் வகையான, ஒரு மூலையில் நம்மை வர்ணம் பூசப்பட்ட
அந்த கேட்ச் [11] சேமிக்கப்பட்ட சட்டத்தை சுட்டிக்காட்டி எதிராக உரிமை வரை இது பார், எதிராக உரிமை உள்ளது,
இது திரும்ப முகவரி எதிராக உரிமை உள்ளது. எந்த அறையில் இல்லை.
நீங்கள் திருகு என்றால் உட்குறிப்பு பிறகு என்ன
நீங்கள் ஒரு 12 பைட் தாங்கல் இந்த 20 பைட்டுகள் படிக்க முயற்சி?
எங்கே அந்த 8 கூடுதல் பைட்டுகள் செல்கிறோம்? >> [மாணவர்] உள்ளே -
எல்லாவற்றையும் உள்ளே, அவற்றில் சில முக்கியமான சூப்பர் உள்ளது.
மிக முக்கியமான விஷயம், திறன்,,, அங்கு மீண்டும் முகவரி சிவப்பு பெட்டி
ஏனெனில், நீங்கள் தற்செயலாக அல்லது adversarially அந்த 4 பைட்டுகள் மேலெழுதும் நினைக்கிறேன்
குப்பை, ஆனால் பல இல்லை என்று சுட்டிக்காட்டி முகவரி,
அந்த நினைவகத்தில் ஒரு உண்மையான முகவரி பிரதிநிதித்துவப்படுத்துவதாக நடக்கிறது.
தர்க்கரீதியாக உட்குறிப்பு, என்ன? >> [மாணவர்] செயல்பாடு வேறு இடத்திற்கு திரும்ப வேண்டும்.
சரியாக.
Foo வருமானம் மற்றும் வெற்றி சுருள் பிரேஸ் என்று, திட்டத்தை தொடர போகும் போது
முக்கிய திரும்ப முடியாது, அது அந்த சிவப்பு பெட்டியில் என்ன முகவரியை திரும்ப நடக்கிறது.
>> சுற்றிவளைக்கும் மென்பொருள் பதிவு வழக்கில்,
திரும்பி வரும் என்று முகவரி பொதுவாக அழைக்கப்படும் விடும் என்று செயல்பாடு என்ன என்றால்
நீங்கள் மென்பொருள் ஊதியம் மற்றும் உங்கள் பதிவு குறியீடு உள்ளிட்ட? பிறகு
நீங்கள் இங்கே போவதில்லை என்ற தந்திரம் கணினியின் வரிசைப்படுத்த ஆனால் அதற்கு பதிலாக இங்கே சென்று முடியும்.
நீங்கள் உண்மையில் புத்திசாலி என்றால் அல்லது, ஒரு விரோதி உண்மையில், உதாரணமாக, விசைப்பலகை இல் தட்டச்சு
ஒரு உண்மையான வார்த்தை இல்லை 20 எழுத்துகள், ஆனால் அவர் உண்மையில் வகையான வேண்டும்
குறியீடு பிரதிநிதித்துவப்படுத்தும் சில கதாபாத்திரங்கள்.
இது சி குறியீடு போகிறேன் இல்லை, அது உண்மையில் எழுத்துக்கள் இருக்க போகிறது
அந்த 0 க்கள் மற்றும் 1 வி பைனரி இயந்திர குறியீடு, பிரதிநிதித்துவம்.
ஆனால், அவர்கள் அதை செய்ய போதுமான வீழ்வது தான் நினைக்கிறேன்
எப்படியோ அடிப்படையில் தொகுக்கப்பட்ட குறியீடு என்று GetString வரியில் ஏதோ ஒட்டலாம் வேண்டும்,
கடந்த 4 பைட்டுகள் என்று திரும்ப முகவரியை மேலெழுதும்.
அந்த உள்ளீடு என்ன முகவரி என்ன?
உண்மையில் இந்த சிவப்பு செவ்வகம் இடையக முதல் பைட் முகவரி உள்ள சேமிக்கிறது.
எனவே, நீங்கள் உண்மையில் வீழ்வது இருக்க வேண்டும், மற்றும் இந்த அங்கே மோசமான மக்கள் சோதனை மற்றும் பிழை நிறைய இருக்கிறது
ஆனால் இந்த இடை எப்படி பெரிய கண்டுபிடிக்க முடியாது
உள்ளீடு கடந்த சில பைட்டுகள் நீங்கள் திட்டம் வழங்கும் போன்ற
உங்கள் இடையகம் தொடக்கத்தில் முகவரி சமமாக இருக்கும் நடக்கும், நீங்கள் இதை செய்ய முடியும்.
நாம் சாதாரணமாக ஹலோ மற்றும் \ 0 சொன்னால், அந்த இடைப்பட்ட ல் முடிவடைகிறது என்ன.
ஆனால் நாம் இன்னும் வீழ்வது இருக்கிறோம் நாம் பொதுவாக தாக்குதல் குறியீடு அழைக்கிறேன் என்ன என்று இடையக நிரப்ப வேண்டும் -
AAA, தாக்குதல், தாக்குதல், தாக்குதல் - இந்த மோசமான ஒன்று என்று ஒன்று உள்ளது,
நீங்கள் உண்மையில் புத்திசாலி என்றால் என்ன, நீங்கள் இதை செய்ய வேண்டும்.
80, C0, 35, 08 - இங்கே சிவப்பு பெட்டியில் எண்கள் வரிசை ஆகும்.
என்று இங்கே தான் என்று பல பொருந்துகிறதா என்று பாருங்கள்.
இது தலைகீழ் வரிசையில், ஆனால் சில நேரம் அதிக.
இந்த பதிலுக்கு முகவரியை வேண்டுமென்றே மாற்றங்கள் செய்யப்பட்டுள்ளது என்று அறிவிப்பு
இங்கே முகவரியை வரை சமமாக, முக்கிய இல்லை முகவரியை.
மோசமான பையன் சூப்பர் ஸ்மார்ட் இருக்கும் என்றால், அவர் அந்த தாக்குதல் குறியீடு சேர்க்க போகிறார்
பயனர் கோப்புகளை அழிக்க அல்லது கடவுச்சொற்களை நகலெடுக்க ஒன்று போல்
அல்லது நான் உள்நுழைய முடியும் என்று ஒரு பயனர் கணக்கு தொடக்கம் - எதுவும் இல்லை.
>> இந்த ஆபத்து மற்றும் சி சக்தி ஆகும்
நீங்கள் சுட்டிகள் வழியாக நினைவகம் ஏனெனில்
நீங்கள் எனவே, ஒரு கணினியின் நினைவகத்தை நீங்கள் விரும்பும் எதையும் எழுத முடியும்
நீங்கள் ஒரு கணினி நீங்கள் விரும்பும் எதையும் செய்ய முடியும்
வெறுமனே அதை தனது சொந்த நினைவக இடத்தில் குதித்தால்.
மற்றும் இந்த நாள் பல திட்டங்கள் மற்றும் பல வலைத்தளங்களிலும் சமரசம் என்று
இந்த சாதகமாக பயன்படுத்தி, மக்கள் கீழே கொதிக்க.
இந்த ஒரு சூப்பர் அதிநவீன தாக்குதல் போல இருக்கலாம், ஆனால் அது எப்போதும் வழி தொடங்க முடியாது.
உண்மையில், என்ன கெட்ட மக்கள் பொதுவாக செய்வேன் என்று
அது ஒரு கட்டளை வரியில் ஒரு திட்டம் அல்லது ஒரு GUI திட்டம் அல்லது ஒரு இணையதளத்தில், என்று
நீங்கள் அர்தமற்று வழங்கும் தொடங்கும்.
நீங்கள், தேடல் புலம் மற்றும் வெற்றி உள்ளிடவும் ஒரு பெரிய வார்த்தை தட்டச்சு
நீங்கள் இணைய விபத்துக்குள்ளான என்பதை பொறுத்திருந்து
அல்லது நீங்கள் நிரல் சில பிழை செய்தி ஏற்படுகிறது என்பதை பொறுத்திருந்து
நீ மோசமான வீரர் என அதிர்ஷ்டம் பெற நீங்கள் சில வேடிக்கையான உள்ளீடு வழங்க காரணம்
ப்ரோக்ராமர் உங்கள் கெட்ட நடத்தை எதிர்பார்க்கலாம் இல்லை என்று திட்டம், விபத்துக்குள்ளான அந்த
இது, உங்களுக்கு போதுமான முயற்சி, போதுமான சோதனை மற்றும் பிழை ஒருவேளை முடியும்
ஒரு துல்லியமான தாக்குதலை முன்னெடுக்க எப்படி கண்டுபிடிக்க.
பாதுகாப்பு மிகவும் அதிகமாக ஒரு பகுதியாக தான் முற்றிலும் இந்த தாக்குதல்களை தவிர்த்து
ஆனால் அவர்கள் கண்டறிதல் மற்றும் உண்மையில் பதிவுகள் பார்க்க
மற்றும் வேடிக்கையான உள்ளீடுகளை உங்கள் இணைய தட்டச்சு மக்கள் என்ன பார்த்து,
என்ன தேடல் உங்கள் இணையத்தளத்தில் மக்கள் தட்டச்சு
சில தடுப்பு நிரம்பி வழிகிறது என்ற நம்பிக்கையில்.
என்ன சாதாரண அடிப்படைகளை இந்த அனைத்து கொதித்தது கீழே ஒரு வரிசை தான்
என்ன அது நினைவகத்தை ஒதுக்க மற்றும் பயன்படுத்த அர்த்தம்.
>> என்று பின்னர் தான் இது தொடர்பான.
அது தான் மீண்டும் ஒரு வன் உள்ளே ஏறெடுத்தும் பார்க்க வேண்டும்.
நீங்கள் முன்பு ஒரு வாரம் அல்லது இரண்டு இருந்து நினைவுகூர என்று நீங்கள் உங்கள் மறுசுழற்சி தொட்டிக்கு அல்லது குப்பை முடியும் கோப்புகளை இழுத்து, போது
என்ன நடக்கிறது? >> [மாணவர்] எதுவும். >> ஒன்றுமேயில்லை, சரியான?
நீங்கள் வட்டு குறைந்த ரன், இறுதியில் என்றால்
விண்டோஸ் அல்லது மேக் OS நீங்கள் கோப்புகளை நீக்கும் ஆரம்பிக்கும்.
நீங்கள் அங்கு ஏதாவது இழுத்து ஆனால், அனைத்து பாதுகாப்பு இல்லை.
உங்கள் ரூம்மேட் அல்லது நண்பர் அல்லது குடும்ப உறுப்பினர் செய்ய உள்ளது இரட்டை கிளிக் செய்து, voila,
நீங்கள் நீக்க முயற்சி என்று அனைத்து மேலோட்டமான கோப்புகள் இல்லை.
நமக்கு மிகவும் குறைந்த பட்சம் நீங்கள் சரியான கிளிக் அல்லது கிளிக் கண்ட்ரோல் வேண்டும் என்று
இப்படி குப்பை அல்லது ஏதாவது காலியாக.
ஆனால் பிறகு மிகவும் தந்திரம் செய்யாமல்
உங்கள் நிலைவட்டில் ஒரு கோப்பு போது என்ன நடக்கிறது என்பதால்
, சில வார்த்தை ஆவணம் அல்லது சில JPEG பிரதிபலிக்கிறது, இந்த உங்கள் நிலைவட்டில் பிரதிபலிக்கிறது
மற்றும் நாம் இங்கே இந்த சிம்பு, அந்த கோப்பு பிரதிபலிக்கிறது என்று
அது 0 க்கள் மற்றும் 1 வி ஒரு மொத்தமாக கொண்ட.
என்ன தான் குப்பை கோப்பு இழுத்து போது நடக்கும் அல்லது பின் மறுசுழற்சி செய்யலாம்
ஆனால் அதை காலி? எதுவும் வகையான.
அது இப்போது முற்றிலும் எதுவும் இல்லை.
ஒரு சிறிய ஒன்று இந்த அட்டவணை வடிவில் நடக்கிறது என்பதால் இப்போது அது இல்லை.
ஒரு கணினியின் நினைவகம் உள்ளே தரவுத்தள அல்லது அட்டவணையில் சில வகையான இல்லை
அந்த அடிப்படையில், கோப்புகளை ஒரு பத்தியில் 'பெயர்கள் மற்றும் கோப்புகளை ஒரு பத்தியில்' இடம் உள்ளது
இந்த இடம் 123, ஒரு சீரற்ற எண் இருக்கும்.
நாம் x.jpeg மற்றும் இடம் 123 போன்ற ஏதாவது இருக்கலாம்.
நீங்கள் உண்மையில் உங்கள் குப்பையை காலி போது என்ன நடக்கும்?
விட்டு செல்லும்.
ஆனால் என்ன விட்டு போக முடியாது 0 க்கள் மற்றும் 1 வி ஆகும்.
>> எனவே pset4 இணைப்பு பிறகு என்ன?
நன்றாக, pset4 கொண்டு, நாங்கள் தவறுதலாக காம்பாக்ட் ஃபிளாஷ் அட்டை அழிக்கப்பட காரணம்
கெட்ட இந்த புகைப்படங்கள் அனைத்தும் அல்லது அதை காரணம் என்று சிதைந்த ஆனது
0 க்கள் மற்றும் 1 வி இன்னமும் இல்லை என்று அர்த்தம் இல்லை.
ஏதோ ஊழல் நடந்தது ஏனெனில் அவர்களுக்கு ஒரு சில இழந்தது
சில 0s 1 வி ஆனது மற்றும் 1 வி 0s ஆனது என்ற அர்த்தத்தில்.
தரமற்ற மென்பொருள் அல்லது குறைபாடுள்ள வன்பொருள் காரணமாக கெட்ட விஷயங்கள் நடக்கலாம்.
ஆனால் அந்த பிட்கள் பல, ஒருவேளை அவர்கள் கூட 100%, அங்கு இன்னும் இருக்கின்றன.
இது JPEG1 தொடங்கினார் கணினி அல்லது கேமரா தெரியாது என்று மட்டும் தான்
மற்றும் அங்கு JPEG2 தொடங்கியது.
ஆனால் நீங்கள், ப்ரோக்ராமர், அந்த JPEG படங்கள் எங்கே ஆர்வலராகவும் ஒரு பிட் தெரியும்
அல்லது அவர்கள் போல் நீங்கள் 0 க்கள் மற்றும் 1 வி மற்றும் சொல்ல JPEG, JPEG, ஆய்வு செய்யலாம்
நீங்கள் அடிப்படையில் தான் ஒரு ஒரு நிரலை எழுத அல்லது போது சுழற்சி
அந்த கோப்புகளை ஒவ்வொரு ஒரு குணமாகும்.
பாடம் பின்னர் பாதுகாப்பாக உங்கள் கோப்புகளை அழித்தலை தொடங்க உள்ளது
நீங்கள் முற்றிலும் இதை தவிர்க்க விரும்பினால். ஆம்.
>> [மாணவர்] எப்படி உங்கள் கணினியில் நிதி
நீங்கள் முன்பு இருந்ததை விட அதிக நினைவகம் என்று?
நீங்கள் முன்பு இருந்ததை விட அதிக நினைவகம் வேண்டும் - >> [மாணவர்] மேலும் கிடைக்கும் நினைவகம்.
ஓ. கேள்வி நல்ல.
ஏன் என்றால் குப்பையை காலியாக்கி பின்னர் உங்கள் கணினியில் நீங்கள் சொல்ல
நீங்கள் முன்பு இருந்ததை விட அதிக காலியிடம் இல்லை என்று?
சுருக்கமாக, இது பொய் காரணம்.
இப்போது நீங்கள் சொன்ன காரணம் இன்னும் தொழில்நுட்ப, மேலும் இடம் இல்லை
அந்த கோப்பு முறை அங்கு நீங்கள் மற்ற பொருட்களை வைக்க முடியாது.
ஆனால் அந்த, பிட்கள் போகிறீர்கள் என்று அர்த்தம் இல்லை
அந்த துணுக்குகள், உதாரணமாக, அனைத்து 0s மாற்றப்பட்டது வருகின்றன அர்த்தம் இல்லை
உங்கள் பாதுகாப்பு.
எனவே இதற்கு மாறாக, நீங்கள் பாதுகாப்பாக கோப்புகளை அழிக்க அல்லது உடல் சாதனம் அழிக்க வேண்டும்,
என்று அந்த சுற்றி சில நேரங்களில் ஒரே வழி.
>> ஏன் நாம் அந்த பகுதி பயங்கரமாக குறிப்பு வெளியே இல்லை, நாங்கள் திங்களன்று நீங்கள் காண்பீர்கள்.
[கரவொலி]
>> [CS50.TV]