[Powered by Google Translate] [வாரம் 5]
[டேவிட் ஜே Malan, ஹார்வர்ட் பல்கலைக்கழகம்]
[இந்த CS50 உள்ளது.] [CS50.TV]
[பெண்] அவன் பொய் சொல்கிறான்; என்ன, எனக்கு தெரியாது.
[நாயகன்] நாம் என்ன தெரியுமா?
[பெண்] 9:15 மணிக்கு, ரே Santoya ஏடிஎம் இருந்தது அது.
[நாயகன்] எனவே கேள்வி, அவர் 9:16 மணிக்கு என்ன செய்து கொண்டிருந்தார்?
[பெண்] ஏதோ 9 மிமீ படப்பிடிப்பு.
ஒருவேளை அவர் துப்பாக்கி சுடும் பார்த்தேன்.
[நாயகன்] அல்லது அவன் வேலை.
[பெண்] காத்திரு. ஒரு செல்.
[நாயகன்] நீங்கள் என்ன பார்க்க வேண்டும்?
[♫ சஸ்பென்ஸான இசை ♫]
[பெண்] தனது முகத்தை கொண்டு வரவும். முழு திரையில்.
[நாயகன்] அவரது கண்ணாடிகள். >> ஒரு பிரதிபலிப்பு உள்ளது.
[♫ சஸ்பென்ஸான இசை ♫]
[நாயகன்] அந்த Nuevita பேஸ்பால் அணியின் தான். அவர்களின் சின்னம் தான்.
[பெண்] அவர் அந்த சட்டையை அணிந்து தான் யார் பேசுவது.
>> [டேவிட் Malan] எனவே, இந்த CS50 வாரம் 5, மற்றும் இன்று நாம் உங்களுக்கு தொலைக்காட்சி மற்றும் திரைப்பட ஒரு பிட் அழித்துவிடும்.
எனவே நீங்கள் இங்கே இதை போல ஒரு நிகழ்ச்சி பார்த்து வருகிறோம் போதெல்லாம்,
மற்றும் போலீசார் "என்று சுத்தம் செய்ய முடியுமா?" என்று அல்லது "மேம்பட்டவை"
உண்மையான உலகத்தில் அதிகரிக்க இல்லை.
உண்மையில், நீங்கள் உண்மையில் எனக்கு இந்த மாதிரி ஒரு சிறிய விஷயம்.
நான் பக்கம் இருந்து ஊழியர்கள் புகைப்படங்கள் ஒன்று இழுத்து.
இந்த ஃபோட்டோஷாப் என்று ஒரு திட்டம் ஆகும். இந்த, 2 Bowdens 1 ஆகும்
உண்மையில் 1 3 Bowdens, இன்று, நாம் ராப் மற்றும் பால் சேர்த்து, அத்துடன் இங்கே திருமதி Bowden ஏனெனில்.
ஆனால் இங்கே திரையில் ராப், மற்றும் அவர் எப்போதும் அவரது கண்ணில் இருந்து அந்த கற்றையை மீது நாம் பெரிதாக்க,
என்ன நீங்கள் உண்மையில் பார்க்க என்ன பார்க்க நீங்கள் என்ன உள்ளது.
இந்த ", மேம்படுத்தப்பட்ட" அதனால் "சிஎஸ்ஐ" இது ஒரு பிட் தவறு இல்லை.
நாங்கள் சிறிது நேரம் "சிஎஸ்ஐ" மீது எடுக்க முடியாது என்றால், வேறு ஒரு கிளி இருக்கிறது.
இந்த ஒரு நீங்கள் விரும்பினால் இனிமேல் கூறுவதற்கு ஒரு நல்ல சொற்றொடர்
உண்மையில், நீங்கள் முற்றிலும் எதுவும் சொல்கிறீர்கள் போது, உங்கள் நண்பர்களுடன் தொழில்நுட்ப ஒலி.
>> [நாயகன்] வாரங்கள் நான் வாடகை வண்டி ஓட்டுபவர் கில்லர் கொலை விசாரணை
ஒரு சில ஆரோக்கியமற்ற ஆர்வத்தை கொண்டு.
[பெண் # 1] இது உண்மையான நேரம் இருக்கிறது.
[பெண் # 2] நான் ஒரு ஐபி முகவரியை கண்காணிக்க முடியும் என்று பார்க்க, விசுவல் பேசிக் பயன்படுத்தி GUI இடைமுகத்தில் உருவாக்க வேண்டும்.
>> [Malan] விசுவல் பேசிக் பயன்படுத்தி GUI இடைமுகத்தில் உருவாக்கி, ஒதுக்கி sync இன் அவுட் ஆக ஆடியோ
ஒரு ஐபி முகவரியை கண்டறிய முழு முட்டாள்தனம்.
இந்த நாட்களில் நீங்கள், விசுவல் பேசிக் பயன்படுத்த முடியாது
அங்கு ஒரு GUI தேவையில்லை, மற்றும் ஐபி முகவரியை ஒரு தொழில்நுட்ப துல்லியமான கால இருந்தது.
எனவே இந்த ஒரு கண் அவுட் வைத்து, என் பிடித்தவைகளில் ஒன்று:
நீங்கள் வேறு மொழி தெரியாது வேண்டும், ஏனெனில் இந்த ஒரு, ஒரு சிறு இரகசிய தான்.
சி ஒரு மூலக்கணமாகும் இதில் குறிக்கோள், சி என்று ஒரு மொழி, அங்கே
இது அவர்களுக்கு பொருள் நோக்கு நிரலாக்க மத்தியில் அது சி மற்றும் சில கூடுதல் அம்சங்கள், அதாவது.
இந்த Apple iOS நிரலாக்கம் பிரபலமானது என்று மொழி.
எனவே இங்கு ", எண்கள்" இருந்து முற்றிலும் மாறுபட்ட நிகழ்ச்சியின் ஒரு கிளிப் தான்
என்று நீங்கள் உண்மையில் சரியான நேரத்தில் உங்கள் டிவோ மற்றும் இடைநிறுத்தம் மீது நெருக்கமாக இருக்கும் என்றால்,
நீங்கள் என்ன அவர்கள் தேடும் இல்லை மிகவும் விவரித்தார் வருகிறது என்ன என்று பார்க்க வேண்டும்.
என்னை இங்கே ஒரு மாறுபட்ட ஆடியோ இணைப்பு முயற்சி மற்றும் நம்மால் முடியாது என்று பார்ப்போம்
ஒத்திசைவு உள்ள ஆடியோ இந்த நேரம் வைத்திருக்கவும்.
நான் "எண்கள்." நீங்கள் கொடுக்க
>> [மேன் # 1] இது ஒரு 32 பிட் IPv4 முகவரி தான்.
[மேன் # 2] ஐபி, அந்த இணைய வேண்டும். >> தனியார் நெட்வொர்க். இது அனிதா தனியார் நெட்வொர்க் தான்.
[Malan] சரி. இந்த நோக்கம், சி, மற்றும் சில குழந்தைகள் வண்ண திட்டம் தான்
நீங்கள் ஒருவேளை அங்கு மாறி பெயரை இருந்து தெரிகிறது என்று.
அதனால், அப்போது, "எண்கள்." என்று நாங்கள் அறிமுகப்படுத்த இன்று இந்த வாரம் மிகவும்
தடயவியல் மற்றும் அதனால் பிரச்சினைகள் சூழல் உலக சிறிது.
இங்கே ஒரு சிறப்பு நிகழ்வு அங்கு ஏனெனில் இன்று ஒரு சுருக்கமாக விரிவுரை இருக்கும்
பின்னர், நாங்கள் மாணவர்கள் மற்றும் ஒரே பெற்றோர்கள் இன்று இருவரும் ஒரு கண்ணோட்டம் எடுத்து, மற்றும் கேலி செய்வோம்
அடிவானத்தில் என்று விஷயங்கள் சில.
அவர்கள் மத்தியில், திங்கள் வரை, நீங்கள் இன்னும் சில படித்தவர்களை வேண்டும்.
EdX, ஹார்வர்ட் மற்றும் திறந்த courseware க்கு ஆன்லைன் நுழைவு தேர்வுகளை புதிய ஆன்லைன் முயற்சி
மேலும், திங்களன்று ஹார்வார்டு வளாகத்தில் தொடங்கி உள்ளது.
வரும் திங்கள் அதாவது நீங்கள் வேண்டும் - கடந்த எண்ணிக்கை வரை,
86,000 கூடுதல் படித்தவர்களை CS50 இன் விரிவுரைகள் இணைந்து தொடர்ந்து
மற்றும் பிரிவுகள் மற்றும் மேலோட்டப்பார்வைகள் மற்றும் சிக்கல் செட்.
இந்த ஒரு பகுதியாக, நீங்கள் தொடக்க வர்க்கத்தின் உறுப்பினர்கள் போவீர்
CS50 இப்போது CS50x.
>> இந்த ஒரு பகுதியாக, இப்போது, அதே சில upsides இருக்கும் என்று.
மாணவர்கள் பெரும் எண்ணிக்கையிலான, இந்த தயாராக,
என்ன அது போதுமானதாக என்று நாம் 108 டிஎஃப்எஸ் மற்றும் CAS உள்ளது கூட,
இல்லை மிகவும் சிறந்த மாணவர் / ஆசிரியர் விகிதம் நாங்கள் 80,000 மற்ற மாணவர்கள் வெற்றி முறை.
நாம் பல சிக்கல் தரப்படுத்தி வேண்டும் போவதில்லை கைமுறையாக அமைக்கிறது.
அதனால் பிரச்சனை தொகுப்பில் இந்த வாரம் அறிமுகப்படுத்தியது, CS50 சோதனை இருக்கும்
பயன்பாட்டிற்கான ஒரு கட்டளை வரி பயன்பாட்டு இருக்கும் இது
இந்த வார பின்னர் அதை புதுப்பிக்க ஒரு முறை கிடைக்கும் என்று,
நீங்கள் கட்டளையை இயக்க முடியும்,, 50 சோதனை
உங்கள் சொந்த pset மீது, உங்கள் திட்டம் உள்ளது என சில கருத்துக்களை எடுத்து வருகிறேன்
சரியான அல்லது தவறான நாம் வழங்கியுள்ளோம் என்று பல்வேறு வடிவமைப்பு குறிப்புகளில் படி.
அதனால் மேலும் மேலும் சிக்கல் தொகுப்பு விவரக்குறிப்பு மற்றும்
CS50x வகுப்பு தோழர்கள் அத்துடன் இந்த பயன்படுத்தி.
>> அதனால் பிரச்சனை தொகுப்பு 4 ஆய்வுத்துறை பற்றி அனைத்து உள்ளது.
இந்த பகுதி, சில நிஜ வாழ்க்கை பொருள் அழகூட்டும்
நான் பட்டதாரி பள்ளியில் இருந்து மேற்கொள்கின்ற போது, நான் ஒரு நேரத்தில் interned
மிடில்செக்ஸ் கவுண்டி தான் மாவட்ட வழக்கறிஞர் அலுவலகம் தடயவியல் வேலை செய்து
அவர்கள் முன்னணி தடயவியல் புலன்விசாரணை கொண்டு, என்ன இந்த தொகை
, நான் ஒரு சில வாரம் கடந்த குறிப்பிட்டுள்ளார் என்று, மாஸ் மாநிலம் போலீஸ் அல்லது மற்றவர்களை உள்ளது
வரும் என, அவர்கள் ஹார்டு டிரைவ்கள் மற்றும் சிடிக்கள் மற்றும் நெகிழ் வட்டுகள் போன்ற விஷயங்களை விட்டுவிடுவாரா என்று
பின்னர் போன்ற, மற்றும் தடயவியல் அலுவலகம் நோக்கம் தெரிந்துகொள்வது என்று
அங்கு அல்லது சில வகையான ஆதாரங்கள் இல்லை.
இந்த சிறப்பு விசாரணைகள் அலகு இருந்தது, அது வெள்ளை காலர் குற்றமாகும்
இது, குற்றங்களை மேலும் சிக்கலான மாதிரி இருந்தது
டிஜிட்டல் மீடியா சில வகையான சம்பந்தப்பட்ட எதையும்; மாறிவிடும் என்று பல மக்கள்
என்று ஒரு மின்னஞ்சல் எழுத "நான் அதை செய்தேன்."
எனவே அடிக்கடி இந்த ஆய்வுத்துறை தேடல்கள், அனைத்து அந்த பழம் திரும்பக்கூட இல்லை
ஆனால் சில நேரங்களில் இது போன்ற மின்னஞ்சல்களை எழுத வேண்டும்.
அதனால் சில நேரங்களில் முயற்சிகள் பரிசாக வழங்கப்பட்டது.
>> ஆனால் இந்த தடயவியல் pset வரை வாழ, நாம் pset 4 கிராபிக்ஸ் ஒரு பிட் அறிமுகப்படுத்தி.
அதனால் ஒருவேளை நீங்கள், வழங்கப்பட்டது, JPEG படங்கள், GIF களை இந்த நாட்கள் போல இந்த விஷயங்களை எடுத்து
ஆனால் நீங்கள் உண்மையில் அதை பற்றி நினைத்தால், ஒரு படம், மிக ராப் முகம் போல்,
ஒரு புள்ளிகள் வரிசை, அல்லது பிக்சல்கள் மாதிரியாக.
இப்போது, ராப் முகத்தை வழக்கில், நிறங்களை அனைத்து வகையான, அங்கு
நாம், otherwide பிக்சல்கள் என்று அழைக்கப்படும் தனிநபர் புள்ளிகள், பார்க்க தொடங்கியது
ஒருமுறை நாங்கள் உள்ளே பெரிதாக்க தொடங்கியது
ஆனால் நாம் உலக சிறிது எளிமைப்படுத்த, மற்றும் இங்கே இந்த ராப் என்று சொன்னால்
கருப்பு மற்றும் வெள்ளை, நன்றாக, பிரதிநிதித்துவப்படுத்துவதாக கருப்பு மற்றும் வெள்ளை நாம் வெறும் பைனரி பயன்படுத்தலாம்.
நாம் பைனரி பயன்படுத்த போகிறீர்கள் என்றால், 1 அல்லது 0, நாம் இந்த அதே படத்தை வெளிப்படுத்த முடியும்
பிட்கள் இந்த வடிவத்துடன் ராப் சிரித்த முகம்: 11000011 பிரதிபலிக்கிறது
வெள்ளை, வெள்ளை, கருப்பு, கருப்பு, கருப்பு, கருப்பு, வெள்ளை, வெள்ளை.
அதனால் அது வண்ணமயமான புகைப்படங்கள் பற்றி தொடங்க, பிறகு, ஒரு பெரும் பாய்ச்சல் அல்ல.
நீங்கள் பேஸ்புக் பார்க்க அல்லது ஒரு டிஜிட்டல் கேமரா மூலம் எடுத்து என்று விஷயங்கள்,
ஆனால், நிச்சயமாக, அது நிறங்கள் வரும்போது, நீங்கள் அதிகமான பிட்கள் வேண்டும்.
மற்றும் புகைப்படங்கள் உலகில் மிகவும் பொதுவான, இல்லை 1 பிட் வண்ணம் பயன்படுத்த வேண்டும்
இந்த கருத்து, ஆனால் 24 பிட் வண்ணம், நீங்கள் உண்மையில் மில்லியன் கணக்கிலான நிறங்களை இங்கு. போன்ற
நாம் ராப் கண் மீது காண்பிக்க போது வழக்கில் என,
என்று பல்வேறு வண்ணமயமான சாத்தியக்கூறுகள் மில்லியன் எந்த எண் இருந்தது.
>> எனவே, பிரச்சினை தொகுப்பு 4 ல், அதே போல் ஒத்திகை இந்த அறிமுகம்
ஏனெனில் இங்கு வெள்ளிக்கிழமை விரிவுரை வழக்கமான 2:30 பதிலாக 3:30 இன்று இருக்கும் இது.
ஆனால் வீடியோ, வழக்கம் போல், நாளை ஆன்லைனில் இருக்கும்.
நாங்கள் மற்றொரு கோப்பு வடிவம் உன்னை அறிமுகப்படுத்துகிறேன்.
இந்த வேண்டுமென்றே, முதலில் மிரட்டுதல் பார்க்க பொருள்
ஆனால் இந்த ஒரு சி struct இன்னும் சில ஆவணங்கள் ஆகும்.
இது, மைக்ரோசாப்ட், ஆண்டுகளுக்கு முன்பு, இந்த வடிவம் பிரபலமடைய உதவியது என்று மாறும்
பிட்மேப் கோப்பு வடிவம், BMP, இந்த சூப்பர் எளிமையானது, என்று
சில நேரங்களில் பயன்படுத்தப்படும் என்று வண்ணமயமான வரைகலை கோப்பு வடிவம்
மற்றும் சில நேரங்களில் இன்னும் டெஸ்க்டாப்புகளில் சுவர்த்தாளுக்கு.
நீங்கள் Windows XP மற்றும் ரோலிங் மலைகள் மற்றும் நீல வானத்தில் திரும்ப நினைத்தால்,
என்று பொதுவாக ஒரு BMP, அல்லது பிட்மேப் படத்தை, மற்றும் பிட்டுப்படங்கள் இருந்தது
அவர்கள் சற்று சிக்கலான ஏனெனில் நமக்கு வேடிக்கையாக இருக்கிறது.
0 மற்றும் 1 என்ற இந்த கட்டம் என மிக எளிய அல்ல;
அதற்கு பதிலாக, நீங்கள் ஒரு கோப்பு தொடக்கத்தில் ஒரு தலைப்பு போன்ற விஷயங்கள் வேண்டும்.
எனவே வேறு வார்த்தைகளில், ஒரு. Bmp கோப்பு உள்ளே 0 மற்றும் 1 என்ற ஒரு மொத்தமாக, இது
ஆனால் சில கூடுதல் 0 மற்றும் 1 அங்கு இருக்கிறது.
இது, பல ஆண்டுகளாக வழங்கப்பட்டது என்ன நாம் அநேகமாக எடுத்திருப்பார் என்று மாறும்
. doc அல்லது. xls அல்லது. எம்பி 3 அல்லது. mp4, போன்ற கோப்பு வடிவங்கள்
நீங்கள் அறிந்த என்று என்ன கோப்பு வடிவங்கள்.
சரி, என்ன இது கூட ஒரு கோப்பு வடிவம் என்று அர்த்தம்?
நாள் முடிவில், ஏனெனில், நாம் பயன்படுத்த இந்த கோப்புகள் அனைத்தையும் வேண்டும் வெறும் 0 மற்றும் 1 இன்
ஒருவேளை அந்த 0 மற்றும் 1 ஒரு, B, C, ஆஸ்கி அல்லது போன்ற மூலம், பிரதிநிதித்துவம்
ஆனால் நாள் முடிவில் மூலம், அது 0 மற்றும் 1 இன் தான்.
>> எனவே மனிதர்கள் எப்போதாவது ஒரு புதிய கோப்பு வடிவமைப்பை கண்டுபிடித்தல் முடிவு
அவர்கள் பிட்கள் முறைகள் உண்மையில் என்ன என்ன தரப்படுத்த வேண்டும்.
இங்கு இந்த வழக்கில், எல்லோரும் பிட்மேப் கோப்பு வடிவம் வடிவமைக்கப்பட்டுள்ளது யார்
ஒரு பிட்மேப் கோப்பு முதல் பைட் நேரத்தில், போன்ற OFFSET 0 குறிக்கப்படும் என்று, அங்கு,
சில மிகுந்த அளவில் மாறுபாடாக என்ற மாறி என்று bfType, அங்கு நடக்கிறது
இது வெறும் பிட்மேப் கோப்பு வகை உள்ளது; இது என்ன பிட்மேப் கோப்பு வகை.
நீங்கள் 2 ஈடு என்று இரண்டாவது வரிசையில், பைட் எண் 2, இருந்து, ஒருவேளை, அறியப்படுமானால்
0 மற்றும் 1 தான் குறிக்கிறது என்று ஒரு முறை உள்ளது?
ஏதாவது அளவு, மற்றும் அங்கிருந்து செல்லும்.
அதனால் பிரச்சனை தொகுப்பு 4 ல், இந்த விஷயங்கள் சில வழியாக நடந்து.
>> நாம் அவர்களை பற்றி caring முடியும், ஆனால் கவனிக்க மாட்டேன் இது சுவாரஸ்யமான பெற தொடங்குகிறது
வரி அல்லது பைட் 54, rgbtBlue, பச்சை மற்றும் சிவப்பு சுற்றி.
நீங்கள் எப்போதாவது சுருக்க RGB, சிவப்பு, பச்சை நீலம் கேள்விப்பட்டேன் என்றால், இந்த என்று ஒரு குறிப்பு உள்ளது.
அதை திருப்பி ஏனெனில் நீங்கள் வானவில் அனைத்து வண்ணங்கள் சித்தரிக்க முடியும்
சிவப்பு மற்றும் நீல மற்றும் பச்சை சில சேர்க்கை.
மேலும், உண்மையில், அறையில் பெற்றோர்கள் முந்தைய ப்ரொஜக்டர் சில நினைவுகூர வேண்டும்.
இந்த நாட்களில், நீங்கள் 1 பிரகாசமான ஒளி ஒரு லென்ஸ் வெளியே வந்து பார்க்க.
ஆனால் மீண்டும் நாளில், நீங்கள் சிவப்பு லென்ஸ், நீல லென்ஸ், மற்றும் பச்சை லென்ஸ் இருந்தது
மற்றும் அவர்கள் திரையில் இலக்காக மற்றும் ஒரு வண்ணமயமான படம் உருவாகிறது.
மற்றும் அடிக்கடி நடுத்தர பள்ளிகள் மற்றும் உயர்நிலை பள்ளிகள் அந்த லென்ஸ்கள் வேண்டும்
எப்போதும் மிகவும் சற்று சாய்ந்து, அதனால் நீங்கள், இரட்டை அல்லது மூன்று படங்களை பார்த்து வகையான இருந்தது
ஆனால் அந்த யோசனை. நீங்கள் ஒரு படத்தை ஓவியம் சிவப்பு மற்றும் பச்சை மற்றும் நீல ஒளி இருந்தது.
மற்றும் அதே கொள்கை கணினிகளில் பயன்படுத்தப்படுகிறது.
>> எனவே சவால்களை மத்தியில், பின்னர், நீங்கள் பிரச்சனையில் 4 அமைக்க
ஒரு சில விஷயங்களை போகிறீர்கள்; ஒரு உண்மையில் ஒரு படஅளவை உள்ளது.
0 மற்றும் 1 என்ற ஒரு அமைப்பு எடுத்து,
, 0 மற்றும் 1 இன் துண்டுகளாக்கி ஒரு அமைப்பு என்ன இந்த பிரதிநிதித்துவப்படுத்தும் கண்டுபிடித்தார்கள்
சிவப்பு, நீலம், பச்சை: பின்னர் பிக்சல்கள் பெருக்கும் என்பதை கண்டுபிடித்தார்கள்
அதனால் உள்ளே ஒரு படத்தை ஆரம்பத்தில் இந்த மாதிரி போது, அதன் பின்னர் பதிலாக இந்த மாதிரி இருக்கும்.
மற்ற சவால்களை மத்தியில், மிக, நீங்கள் ஒப்படைத்தார் இருக்க வேண்டும் என்று போகிறது
ஒரு டிஜிட்டல் கேமரா ஒரு உண்மையான கோப்பு ஒரு தடயவியல் படம்
அந்த கேமரா, ஒரு காலத்தில், புகைப்படங்கள் ஒரு மொத்தமாக இருந்தது.
பிரச்சனை, நாங்கள் தவறுதலாக அழித்துவிட்டேன் அல்லது படத்தை எப்படியாவது சிதைந்த இருந்தது.
கெட்ட டிஜிட்டல் கேமராக்கள் நடக்க, மற்றும் நாம் விரைவாக 0 மற்றும் 1 இன் அனைத்து நகல்
ஆஃப் நீங்கள் அந்த அட்டை, 1 பெரிய கோப்பு அவர்களை காப்பாற்றினார், பிறகு நீங்கள் அவர்களை கொடுப்பாய்
நீங்கள் மீட்க எந்த சி ஒரு நிரலை எழுத முடியும் என்று பிரச்சனை 4 அமைக்க
அந்த JPEG படங்கள் அனைத்தும், பலவகையில்.
அது, அவர்கள் ஏதோ ஒரு சிக்கலான கோப்பு வடிவமைப்பு இருக்கும் போதும், அந்த JPEG படங்கள் அவுட் சுழல்கிறது
அவர்கள் மிகவும் சிக்கலான இங்கே இந்த சிரித்த முகத்தை விட இருக்கிறோம்.
ஒவ்வொரு JPEG 0 மற்றும் 1 என்ற ஒரே முறை தொடங்குகிறது என்று கூறினார்.
அதனால் சுழற்சி அல்லது இதே போன்ற ஒரு நிலையில் சுழற்சி அல்லது ஒரு பயன்படுத்தி,
நீங்கள் அனைத்து 0 மற்றும் 1 இந்த தடயவியல் படத்தில் மீது மீண்டும் கூறு முடியாது
நீங்கள் பிரச்சனை தொகுப்பின் குறிப்பீட்டிலுள்ள என்று சிறப்பு முறை பார்க்க ஒவ்வொரு முறையும்,
நீங்கள், மிக அதிக நிகழ்தகவு, 'ஓ, இங்கே, தொடரலாம்
ஒரு JPEG தொடக்கத்தில், 'மற்றும் விரைவில் நீங்கள் காணலாம் அதே மாதிரி,
பின்னர் பைட்டுகள் அல்லது கிலோபைட்டுகளை அல்லது மெகாபைட் சில பல,
நீங்கள் ஓ ', நினைத்து கொள்ளலாம்! இங்கே ஒரு இரண்டாவது JPEG, நான் முதல் ஒரு பிறகு எடுத்து நிகழ்வு ஆகும்.
எனக்கு அந்த முதல் கோப்பு படித்து விட்டுவிடுவோம், இந்த புதிய எழுத தொடங்கினார். '
மற்றும் pset 4 உங்கள் நிரல் வெளியீடு பல 50 JPEG படங்கள் போகிறது.
இது 50 JPEG படங்கள் இல்லை என்றால், நீங்கள் ஒரு வட்டத்திற்கு ஒரு பிட் உள்ளது.
நீங்கள் JPEG படங்கள் எண்ணற்ற இருந்தால், நீங்கள் ஒரு முடிவிலா சுழற்சியில் உள்ளது.
அதனால், நானும், மிகவும் பொதுவான வழக்கு இருக்கும்.
அந்த அடிவானத்தில் தான் என்ன.
>> எங்களுக்கு பின்னால், 0 க்விஸ். உணர்ந்து, என் மின்னஞ்சல் ஒன்றுக்கு, அந்த தவிர்க்க எல்லோரும் அங்கு
மகிழ்ச்சியான, நடுநிலை வகையான, மற்றும் வினாடி வினா சுற்றி வருத்தம் 0 நேரம் இருவரும் யார்.
தலைமை டிஎஃப்எஸ், Zamyla, உங்கள் சொந்த TF, என்னை வெளியே வந்து தயவுசெய்து
நீங்கள் எல்லாம் எப்படி விவாதிக்க விரும்பினால் உங்களுக்கு தெரியும் என்று CAS அல்லது ஒரு.
>> எனவே, அறையில் இங்கே பெற்றோர்கள் கவர
CS50 நூலகம் என்ன? நல்ல வேலை.
CS50 நூலகம் என்ன? அப்படியா? [மாணவர் பதில்கள், புரிந்து]
>>, சரி நல்ல. எனவே நாம், ஊழியர்கள், எழுதிய குறியீடு ஒரு prewritten ஜோடி,
நாம் சில பொதுவான செயல்பாடுகள் வழங்க, நீங்கள் அளிக்கும்.
இங்கே பட்டியலிடப்பட்டுள்ள என்று செயல்பாடுகளை அனைத்து, என்னை ஒரு முழு எண்ணாக வரும்; என்னை ஒரு சரம் கிடைக்கும் விஷயங்களுடன்.
இப்போது தொடங்கி, நாம் உண்மையில் இந்த பயிற்சி சக்கரங்கள் எடுக்க தொடங்கும்.
எனவே, நீங்கள் ஒரு "சரம்" எடுத்து ஆரம்பிக்க போகிறோம்
இது, திரும்ப, என்ன உண்மையான தரவு வகை ஒரு பொருள் இருந்தது? கரி *.
எனவே பெற்றோர்கள், அந்த ஒருவேளை இருந்தது - அது நல்லது, அதனால் எரிப்பதை * நாம் பார்க்க ஆரம்பிப்போம்
திரையில் அனைத்து நாம் சொல்லகராதி இருந்து "சரம்" அகற்ற இன்னும்,
உண்மையில் குறியீடு எழுதி அது வரும் குறைந்தபட்சம் போது.
இதேபோல், நாம், மிக இந்த செயல்பாடுகளில் சில பயன்படுத்தி நிறுத்த வேண்டும்
நமது திட்டங்கள் இன்னும் அதிநவீன பெற போகிறோம், ஏனெனில்
மாறாக தான், ஒரு வரியில் ஒளிரும் அங்கே உட்கார்ந்து நிரல்களை எழுத
உள்ளே ஏதாவது தட்டச்சு பயனர் காத்திருக்கிறது
நீங்கள் வேறு உங்கள் உள்ளீடுகள் கிடைக்கும்.
உதாரணமாக, நீங்கள் உள்ளூர் நிலைவட்டில் பிட்கள் ஒரு தொடர் இருந்து வருகிறேன்.
நீங்கள் பதிலாக சில இணைய எங்கோ, ஒரு பிணைய இணைப்பு இருந்து எதிர்காலத்தில் வருகிறேன்.
அதனால் முதல் முறையாக இந்த அடுக்கு தலாம் நாம், மற்றும் CS50 பயன்பாட்டிற்கான மேலே
நீங்கள் வாரங்கள் உட்பட கூர்மையான தான் இது CS50.h என்று இந்த கோப்பு.
>> ஆனால் அது உண்மையில் இந்த உள்ளே என்ன என்று பார்ப்போம்.
எனவே நீல கோப்பின் மேல், வெறும் கருத்துக்கள் ஒரு மொத்தமாக உள்ளது
உத்தரவாதத்தை தகவல் மற்றும் உரிமம். இந்த ஒரு பொதுவான முன்னுதாரணம் வகை
மென்பொருள், ஏனெனில் மென்பொருள் நிறைய இந்த நாட்கள் ", திறந்த மூல" என்று என்ன இருக்கிறது
இது யாரோ குறியீடு எழுதியுள்ளார் என்று அர்த்தம்
மேலும், தான் இயக்க மற்றும் பயன்படுத்த, அதை இலவசமாக கிடைக்க செய்யப்பட்டது
ஆனால் உண்மையில் படித்து மாற்ற மற்றும் உங்கள் சொந்த வேலை தொகையிடும்.
அதனால், நீங்கள், திறந்த மூல மென்பொருள் பயன்படுத்தி வருகிறோம் என்ன
ஒரு மிக சிறிய வடிவத்தில் என்றாலும்.
நான் கருத்துரைகள் கடந்த கீழே இருந்தால், எனினும், நாம் இன்னும் சில பழக்கமான விஷயங்களை பார்க்க ஆரம்பிப்பார்கள்.
எனவே CS50.h கோப்பு தலைப்பு கோப்புகள் ஒரு மொத்தமாக கொண்டுள்ளது என்று, இங்கே மேலே கவனிக்க.
இப்போது, இந்த மிக நாம் பார்த்ததில்லை, ஆனால் ஒரு
தெரிந்திருந்தால்; இந்த நாம் இதுவரை, சுருக்கமாக என்றாலும், பார்த்தாயா?
சரி, நிலையான நூலகங்கள். Stdlib.h, malloc உள்ளது
எனவே நாம், மாறும் நினைவக ஒதுக்கீடு பற்றி பேச ஆரம்பித்துவிட்டார்கள்
நாம் அதே அடுத்த வாரம் திரும்பவும் வருவேன் அது, அந்த கோப்பு உட்பட தொடங்கியது.
இது bool மற்றும் உண்மையான மற்றும் பொய்யான உண்மையில், உள்ளபடியே, சி இல்லை என்று திருப்பி
நீங்கள் இங்கே இந்த கோப்பு அடங்கும் வரை.
எனவே, வாரங்கள், நிலையான bool.h உட்பட
நீங்கள் ஒரு, bool உண்மை அல்லது பொய். கருத்து பயன்படுத்த முடியும்
இந்த இல்லாமல், நீங்கள் போலி அது வரிசைப்படுத்த மற்றும் ஒரு முழு எண்ணாக பயன்படுத்த வேண்டும்
மற்றும் தன்னிச்சையாக 0 பொய் மற்றும் 1 உண்மை என்று வைத்து கொள்வோம்.
>> இப்போது, நாம் இன்னும் கீழே என்றால், இங்கே ஒரு சரம் எங்கள் வரையறை ஆகும்.
இந்த * எங்கே உண்மையில் இல்லை என்று, நாங்கள் முன்பு சொன்னதை போல், மாறிவிடும்.
நீ சுற்றி இடைவெளி இருக்க முடியும்.
நாம், இந்த கல்வியாண்டிற்கு, * வகை செய்ய வேண்டும் என்று தெளிவாக இந்த அதை ஊக்குவிக்கும்.
ஆனால் இன்னும் கொஞ்சம் பொதுவான இல்லை என்றால், அங்கு வைத்து தான், வெறும் பொதுவான, உணர
ஆனால் செயல்படவில்லை அதே விஷயம்.
நாம் இன்னும் கீழே படிக்க வேண்டும் ஆனால் இப்போது, தான் சொன்னதை பாருங்கள், GetInt, எடுத்துக்கொள்கிறேன்
நாம் வேறு எதையும் இந்த செமஸ்டர் முன், ஒருவேளை, அந்த பயன்படுத்தப்படும் என்பதால்.
இங்கு GetInt உள்ளது. இது என்ன?
இந்த மாதிரி தான். அடிக்கடி, நாம் நம் டாப்ஸ் உள்ள முன்மாதிரிகளை விட்டீர்கள். கேட்ச் கோப்புகள்,
ஆனால் நீங்கள் தலைப்பு கோப்புகள்,. h கோப்புகள், உள்ள முன்மாதிரிகளை முடியும்
இங்கே இது போன்ற, அதனால் நீங்கள் சில செயல்பாடுகளை எழுத போது
நீங்கள் மற்றவர்கள் பயன்படுத்த முடியாது என்று, இது, CS50 நூலகம் மூலம் துல்லியமாக வழக்கு
நீங்கள், CS50.c போல் உங்கள் செயல்பாடுகளை செயல்படுத்த மட்டும்
நீங்கள், அந்த கோப்பின் மேல் முன்மாதிரிகளை வைத்து, ஆனால் ஒரு தலைப்பு கோப்பு மேலே
பின்னர் அந்த தலைப்பு கோப்பு, நண்பர்கள் மற்றும் சக அடங்கும் என்ன
கூர்மையான தங்கள் சொந்த குறியீடு சேர்க்க.
இந்த நேரத்தில் நீங்கள் இந்த முன்மாதிரிகளை அனைத்து உட்பட
இது உங்கள் கோப்பு மேலே, ஆனால் இந்த கூர்மையான மூலம் செயல்முறை அடங்கும்
அந்த அடிப்படையில் பிரதிகள் மற்றும் பசைகள் உங்கள் சொந்த இந்த கோப்பு.
இப்போது, இங்கே சில மிகவும் விரிவான ஆவணங்கள் ஆகும்.
>> GetInt ஒரு முழு எண்ணாக வரும் என்று வழங்கப்பட்டது நாம் மிகவும் அதிகமாக எடுத்துள்ளேன்,
சில மூலையில் நேரங்களில் அங்கு அவுட் ஆனால், சரியான மாறும்?
என்ன வழி மிக பெரிய என்று பல பயனர் வகைகள் என்றால்?
ஒரு எண்ணாக உள்ளே பொருந்தும் முடியாது என்று ஒரு quintillion,?
எதிர்பார்க்கப்படும் நடத்தை என்ன? நன்றாக, பலவகையில், அதை யூகிக்கக்கூடிய தான்.
இந்த வழக்கில், நீங்கள் உண்மையில், நன்றாக அச்சு படிக்க வேண்டும்
நீங்கள் அந்த வரியை படிக்க முடியாது என்றால், இந்த வருமானத்தை INT_MAX பார்க்கிறேன்.
நாம், இந்த பேசினார், ஆனால் அதன் மூலதன அடிப்படையில்
இது அநேகமாக, என்ன?
அதை தொடர்ந்து தான், அது அநேகமாக அறிவித்தார் என்று சில சிறப்பு நிலையான தான்
கோப்பில் உயர்ந்த என்று அந்த தலைப்பு கோப்புகள் ஒன்று,
மற்றும் INT_MAX ஒருவேளை 2 பில்லியன், தோராயமாக, போன்ற விஷயம்.
நாம் எப்படியாவது என்று ஏதாவது குறிப்பிட்ட தேவை என்று அவர் யோசனை, தவறு
நாங்கள், ஆம், எங்கள் வசம் 4 பில்லியன் எண்கள் இல்லை
2 பில்லியன் எதிர்மறை 2 பில்லியன் கொடுக்க அல்லது எடுத்து.
சரி, என்ன நிரலாக்க பொதுவாக நீங்கள் அந்த எண்கள் ஒரு திருட உள்ளது.
ஒருவேளை 0, ஒருவேளை 2 பில்லியன், ஒருவேளை எதிர்மறை 2 பில்லியன்.
நீங்கள் உலக செய்வேன் என்று நீங்கள் சாத்தியமான மதிப்புகள் ஒரு செலவு
ஏதாவது தவறு நடந்தால் அது, நான் இந்த சூப்பர் பெரிய மதிப்பு வருவேன்.
ஆனால் நீங்கள் பயனர் போன்ற ரகசிய ஏதாவது தட்டச்சு விரும்பவில்லை "4, 2, 3 ..."
உண்மையில் பெரிய எண்ணிக்கையில், நீங்கள் ஒரு நிலையான போன்ற பதிலாக பொதுமைப்படுத்த.
எனவே உண்மையில், கடந்த சில வாரங்களுக்கு குத இருந்தது என்றால்,
நீங்கள் GetInt அழைப்பு எப்போது வேண்டுமானாலும், நீங்கள் ஒரு இருந்தால் நிலை சரி.
, அல்லது இன்னும் குறிப்பாக, INT_MAX பயனர் வகை செய்தது
GetInt மீண்டும் INT_MAX செய்தார்? ஏனெனில் இது செய்தால்,
உண்மையில் அவர்கள் அதை தட்டச்சு செய்யவில்லை என்றால், ஏதோ இந்த விஷயத்தில் தவறு.
எனவே இது பொதுவாக ஒரு சிறப்பு அதாவது ஒரு "காவலாளி" மதிப்பு, என்று என்ன இருக்கிறது.
>> சரி, இப்போது. கேட்ச் கோப்புகளை திரும்ப அனுமதிக்க.
சி கோப்பு, சில நேரம் பயன்பாட்டிற்கான இருந்த
மேலும், உண்மையில், உபகரணம் நீங்கள் அதை precompiled உள்ளது
அந்த விஷயம் மீது நாம் ", பொருள் குறியீடு" என்று
கணினி தெரியும், ஏனெனில் அது எங்கே ஆனால் அது உங்களுக்கு தேவையில்லை,
இந்த வழக்கில், அது எங்கே, சாதனம்.
ஆனால் அது GetInt இப்போது கீழே விட, மற்றும் GetInt அனைத்து இந்த நேரம் வேலை எப்படி பார்க்க.
இங்கு நாம் முன் இருந்து ஒத்த கருத்து இல்லை.
என்னை குறியீடு பகுதியில் பெரிதாக்க விட,
மற்றும் நாம் GetInt செய்ய வேண்டும் பின்வரும் உள்ளது.
(உண்மையான), நாங்கள் வேண்டுமென்றே முடிவிலா சுழற்சி உள்ளது போது, அது எந்த உள்ளீடு எடுத்து அதை ஒரு முழு எண்ணாக கொடுக்கிறது
ஆனால், மறைமுகமாக, நாம் எப்படியாவது இந்த உடைத்து, அல்லது இந்த க்குள் திரும்பிவிடுவேன்.
எனவே எப்படி இந்த வேலை பார்க்கிறேன். சரி, நாம் GetString பயன்படுத்தி தெரிகிறது
சுழற்சி, 166 உள்ளே இந்த முதல் வரியில்.
இந்த இப்போது நல்ல நடைமுறையில் இருப்பதால் என்ன சூழ்நிலையில்
GetString இந்த சிறப்பு சொல், NULL திரும்ப முடியும்?
ஏதாவது தவறு நடந்தால். நீங்கள் GetString போன்ற ஏதாவது அழைப்பு தவறு என்ன?
அப்படியா? [மாணவர் பதில், புரிந்து] >> சரி. அதனால் malloc முடியவில்லை.
எங்கோ பேட்டை GetString கீழ், malloc அழைப்பு
இது கணினி கடை உதவுகிறது இதில், நினைவக ஒதுக்கீடு
எல்லா கதாபாத்திரங்களும் அந்த விசைப்பலகை கொண்டு பயனர் வகைகள்.
மற்றும் பயனர் இலவச நேரம் ஒரு முழு நிறைய வேண்டும்
மற்றும் 2 பில்லியன் எழுத்துக்களை விட, உதாரணத்திற்கு, இன்னும் தட்டச்சு.
கணினி விட கதாபாத்திரங்கள் கூட ரேம் உள்ளது.
நன்றாக, GetString, நீங்கள் அந்த குறிப்பிட்ட முடியும் வேண்டும்
இந்த ஒரு சூப்பர், சூப்பர் அசாதாரணமானது மூலையில் வழக்கு கூட.
இது, எப்படியாவது இந்த கையாள முடியும் என்று, அதனால் GetString
நாம் திரும்பி சென்று அதன் ஆவணங்களை வாசிக்க என்றால், உண்மையில், NULL திருப்பி.
GetString NULL திரும்புவதன் மூலம் முடியவில்லை இப்போது என்றால், GetInt தோத்துடுவாங்க
ஒரு காவலாளி என, INT_MAX திரும்புவதன் மூலம்.
இவை மனித மரபுகளை இருக்கும். இந்த தெரியும் ஒரே வழி வழக்கு
ஆவணங்களை படித்து உள்ளார்.
எனவே எண்ணாக உண்மையில் GotInt எங்கே உருட்டலாம் நாம்.
>> நான் ஒரு பிட் மேலும் கீழே என்றால், வரி 170 நாம் இந்த வரிகளை மேலே ஒரு கருத்து உள்ளது.
எனவே, 172 இல், ஒரு முழு எண்ணாக n மற்றும் ஒரு கரி கேட்ச், பின்னர் இந்த புதிய செயல்பாடு பிரகடனம்
நீங்கள் சில முன் முழுவதும் தடுமாறின, ஆனால் sscanf.
இந்த சரம் ஸ்கேன் f குறிக்கிறது.
வேறுவிதமாக கூறினால், என்னை ஒரு சரம் கொடுக்க நான் வட்டி தகவல் துண்டுகளை அதை ஸ்கேன் செய்யும்.
அதனால் என்ன அர்த்தம்? நன்றாக, நான் விசைப்பலகை உள்ள 1 2 3, உண்மையில், தட்டச்சு நினைக்கிறேன்
பின்னர் உள்ளிடவும் ஹிட். GetString மூலம் திரும்பின 1 2 3 தரவு வகை என்ன?
அது சரி, வெளிப்படையாக ஒரு சரம் இருக்கிறது? நான் ஒரு சரம் கிடைத்தது, அதனால் 1 2 3 உண்மையில் "1 2 3"
அது இறுதியில் \ 0. என்று ஒரு முழு எண்ணாக இல்லை.
ஒரு எண் அல்ல. இது பல தெரிகிறது ஆனால் உண்மையில் இல்லை.
அதனால் என்ன GetInt செய்ய வேண்டும்? இது, இடமிருந்து வலமாக என்று சரம் ஸ்கேன் செய்ய வேண்டும்
1 2 3 \ 0, மற்றும் எப்படியோ ஒரு உண்மையான முழு மாற்ற வேண்டும்.
இப்போது, நீங்கள் இதை செய்ய எப்படி கண்டுபிடிக்க முடியும்.
நீங்கள் pset 2 திரும்ப நினைத்தால், நீங்கள் மறைமுகமாக ஒரு சிறிய வசதியாக கிடைத்தது
சீசர் அல்லது வைஜெனேர் அவ்வாறு நீங்கள், ஒரு சரம் மீது மீண்டும் கூறு முடியாது
நீங்கள் தேர்வு மூலம் ints செய்ய எழுத்துகள் மாற்ற முடியும். வேலை முழு நிறைய என்று.
ஏன் அந்த என்று sscanf போன்ற ஒரு செயல்பாடு அழைக்க கூடாது?
எனவே sscanf ஒரு சரம் இது வரி என்று இந்த வழக்கில், இல், ஒரு வாதத்தை எதிர்பார்க்கிறது.
நீங்கள், மேற்கோளில், printf மிகவும் ஒத்த குறிப்பிட
இந்த சரம் இல் பார்க்க என்ன எதிர்பார்க்கிறீர்கள்?
என்ன நான் இங்கே சொல்கிறேன், நான் ஒரு தசம எண் மற்றும் ஒருவேளை ஒரு பாத்திரம் பார்க்க எதிர்பார்க்கலாம்.
இந்த ஒரு நொடியில் வழக்கு ஏன் நாம் பார்க்க வேண்டும்.
இந்த குறியீடு, இப்போது பொருள் நினைவூட்டுவதாக உள்ளது என்று மாறிவிடும்
நாம் ஒரு வாரம் முன்பு பற்றி பேச ஆரம்பித்துவிட்டார்கள்.
>> என்ன & n மற்றும் & கேட்ச் இங்கே நமக்கு என்ன? [மாணவர் பதில்கள், புரிந்து]
>> சரி. அது என்னை கேட்ச், n மற்றும் முகவரி முகவரியை கொடுக்கிறாள்.
இப்போது, ஏன் அவசியம்? சரி, உங்களுக்கு தெரியும் என்று சி செயல்பாடுகளுடன்
நீங்கள் எப்பொழுதுமே ஒரு மதிப்பு அல்லது மதிப்பை திரும்ப முடியும்.
நீங்கள் ஒரு முழு எண்ணாக, ஒரு சரம், ஒரு மிதவை, ஒரு கரி, அதை திரும்ப முடியும்.
அல்லது நீங்கள் வெற்றிடத்தை திரும்ப முடியும், ஆனால் நீங்கள் மட்டும் அதிகபட்சம் 1 விஷயத்தை திரும்ப முடியும்.
ஆனால் இங்கே நாம் sscanf ஒருவேளை ஒரு முழு எண்ணாக, ஒரு தசம எண், என்னை திரும்ப வேண்டும்
மேலும் ஒரு கரி, மற்றும் நான் ஒரு நொடியில் ஏன் எரிப்பதை விளக்க வேண்டும்.
எனவே நீங்கள் திறம்பட F 2 விஷயங்கள் திரும்ப வேண்டும்; அந்த சி வெறும் முடியாது
எனவே, 2 முகவரிகள் கடந்து செல்லும் அந்த பணிபுரிய முடியும்
நீங்கள் ஒரு செயல்பாடு 2 முகவரிகளை கொடுத்து விரைவில், அந்த செயல்பாடு இன்னும் என்ன செய்ய முடியும், ஏனெனில்?
அந்த முகவரிகள் எழுத முடியும். நீங்கள் * அறுவை சிகிச்சை பயன்படுத்த அந்த முகவரிகள் ஒவ்வொன்றுக்கும் "அங்கு சென்று" முடியும்.
இந்த கதவு அமைப்பு வகை தான், ஆனால் மாறிகளின் மதிப்புகளை மாற்றும் மிகவும் பொதுவான
இந்த வழக்கில் 2 ல் 1 இடத்தில், விட வேண்டும்.
இப்போது, நான் == to1 சரிபார்ப்பு, பின்னர் அந்த உண்மையில், உண்மையான மதிப்பீடு என்றால் n திரும்பி பார்க்க.
அதனால் என்ன நடக்கிறது? நன்றாக, தொழில்நுட்ப, நாம் உண்மையில் GetInt நடக்க வேண்டும் இதெல்லாம்.
நாம் பேச, அலச வேண்டும்; நாம் சரம் படிக்க வேண்டும்
"1 2 3" மற்றும் ஒரு எண் போன்ற தெரிகிறது என்றால்,
நாம் என்ன செய்ய sscanf சொல்கிறாய் என்னை இந்த மாறி n அந்த எண், 1 2 3, போட்டு உள்ளது.
ஏன், பிறகு, நான் இந்த இருக்கிறது?
மேலும் sscanf, நீங்கள் இங்கே ஒரு பாத்திரம் வந்துவிடும் என்று பங்கு என்ன.
[மாணவர் பேசும், புரிந்து] >> இல்லை - ஒரு தசம புள்ளி வேலை முடியும்.
ஒரு கணம் நினைத்து தான் நடத்த வேண்டும். வேறு என்ன?
[மாணவர், புரிந்து] >> எனவே, நல்ல சிந்தனை, அதை NULL தன்மை இருக்க முடியும்.
இந்த வழக்கில், உண்மையில் இல்லை. அப்படியா? [மாணவர், புரிந்து]
>> >> ஆஸ்கி. அல்லது, எனக்கு இன்னும் பொதுமைப்படுத்த நாம்.
அங்கு% கேட்ச் தான் பிழை சோதனை உள்ளது.
நாம், எண் பிறகு தன்மை இருக்க விரும்பவில்லை
ஆனால் என்ன இது எனக்கு செய்ய அனுமதிக்கிறது பின்வருமாறு:
அது sscanf, இங்கே இந்த எடுத்துக்காட்டாக, n மற்றும் கேட்ச் உள்ள மதிப்புகள் சேமித்து தவிர, மாறிவிடும்
இது இது மாறிகள் எண்ணிக்கை கொடுக்கிறது என்பது என்ன, அது உள்ளே மதிப்புகள் வைத்து
நீங்கள் மட்டுமே பிறகு, 1 2 3 தட்டச்சு என்றால் மட்டுமே% d பொருந்தும் போகிறது
மற்றும் மட்டுமே n 1 2 3 போன்ற ஒரு மதிப்பு சேமிக்கப்பட்ட மற்றும் எதுவும் கேட்ச் வைக்க போகிறான்;
கேட்ச் அதனால் பேச, ஒரு குப்பை மதிப்பு உள்ளது.
சில மதிப்பு துவக்கப்படும் குப்பை ஏனெனில்.
நான் அந்த சுட்டிகள் ஒரு மக்கள் ஏனெனில் அந்த வழக்கில், sscanf, 1 கொடுக்கிறது
இதில், பெரிய. நான் ஒரு முழு எண்ணாக இருக்கிறது, அதனால், நான் நினைவக வரை விடுவிக்க வரி விடுவித்து
அந்த GetString உண்மையில் ஒதுக்கீடு, மற்றும் நான் n மீண்டும்.
என்று மீண்டும் நீங்கள் எப்போதும் வியந்து இல்லையென்றால், அறிக்கை வரும், வலது இங்கே இருந்து வருகிறது.
என்றால், இதற்கு மாறாக, நான், 1 2 3 foo தட்டச்சு
உரை சில சீரற்ற வரிசையில், sscanf, பார்க்க போவது
ஊ - ஓ, ஓ,, பல பல ஓ,, பல ஓ.
அதை n இல் 1 2 3 வைக்க நடக்கிறது.
அதை கேட்ச் f ஆனது வைத்து, பிறகு 2 திரும்ப நடக்கிறது.
எனவே, வெறும் scanf நடத்தையை அடிப்படை வரையறையை பயன்படுத்தி, வேண்டும்
ஒரு மிக எளிய வழி - நன்றாக, முதல் பார்வையில் சிக்கலான, ஆனால் நாள் முடிவில்,
சொல்லி மிகவும் எளிமையான வழிமுறை, அங்கு ஒரு முழு எண்ணாக இருக்கும், மற்றும் நீங்கள், என்று நான் இல்லை என்று மட்டும் தான்?
இங்கு வெள்ளை இடத்தை வேண்டுமென்றே உள்ளது. நீங்கள் sscanf ஆவணத்தை, படிக்க வேண்டும்
அதை நீங்கள் தொடக்கத்தில் அல்லது இறுதியில் வெள்ளை இடத்தில் ஒரு துண்டு ஆகியவை இருந்தால், நீங்கள் சொல்கிறது
sscanf கூட spacebar 1 2 3 அடிக்க, எந்த காரணத்திற்காகவும், பயனர் அனுமதிக்கும், மற்றும் முறையான இருக்கும்.
அவர்கள் ஆரம்பத்தில் அல்லது முடிவில் spacebar வெற்றி தான் இது, பயனர் கத்துகிறாய்
இது பயனர் நட்பு கொஞ்சம் அதிகம்.
>> எந்த கேள்விகள், பின்னர், GetInts மீது? அப்படியா?
[மாணவர் கேள்வி, புரிந்து]
>> நல்ல கேள்வி. நீங்கள் ஒரு எரிப்பதை தட்டச்சு செய்தால், ஊ, மற்றும் வெற்றி நுழைய என்ன
இதுவரை 1 2 3 தட்டச்சு இல்லாமல்; நீ குறியீடு இந்த வரி நடத்தை பிறகு என்ன நினைக்கிறீர்கள்?
எனவே sscanf, அந்த கவர் என்று வழக்கில் ஏனெனில்,
அதை n அல்லது கேட்ச் நிரப்ப போவது இல்லை; அதை பதிலாக 0 திரும்ப நடக்கிறது.
நான் எதிர்பார்த்த மதிப்பு 1 ஏனெனில் இதில், நான் கூட, அந்த காட்சியில் கவரும்.
நான் மட்டும் 1 வேண்டும், மற்றும் மட்டும் 1 காரியத்தை பூர்த்தி செய்ய வேண்டும். கேள்வி நல்ல. மற்றவர்களுக்கு?
>> சரி, இங்கே உள்ள செயல்பாடுகளை அனைத்து செல்ல வேண்டாம்,
ஆனால் மீதமுள்ள வட்டி, ஒருவேளை, தெரிகிறது என்று ஒரு
அதை திருப்பி ஏனெனில் GetString என்று GetFloat, GetInt,
அனைத்து பந்தயம் GetString அவர்களின் செயல்பாடு நிறைய GetLongLong, GetDouble.
எனவே அவர் இங்கே செயல்படுத்தப்படும் என்பதை பாருங்கள் நாம்.
இந்த ஒரு சிறிய சிக்கல் இருக்கிறது ஆனால் அது அதே அடிப்படைகள் பயன்படுத்துகிறது
நாம் கடந்த வாரம் பற்றி பேச ஆரம்பித்துவிட்டார்கள் என்று. எனவே GetString உள்ள,
இது, இங்கு வெற்றிடத்தை படி இல்லை வாதத்தை எடுத்து
அது ஒரு சரம் கொடுக்கிறது; நான் இடையக என்று ஒரு சரம் அறிவித்தார் நான்.
நான் இன்னும் பயன்படுத்த வேண்டும் என்ன நடக்கிறது என்று எனக்கு தெரியாது, ஆனால் நாம் பார்க்க வேண்டும்.
திறன் போன்ற தோற்றம் முன்னிருப்பு, 0 மூலம், தான்; இந்த எங்கே போகிறாய் என்று எனக்கு நிச்சயமாக இல்லை.
இல்லை n இன்னும் பயன்படுத்த வேண்டும் என்ன நடக்கிறது என்று.
ஆனால் இப்போது, அந்த வரிசையில் 243 ஆம் ஆண்டில், இன்னும் கொஞ்சம் சுவாரசியமான போகிறது
நாம் ஒரு முழு எண்ணாக கேட்ச், இந்த ஒரு முட்டாள் விவரம் வகை அறிவிக்க.
ஒரு எரிப்பதை 8 பிட்கள் மற்றும் 8 பிட்கள் எப்படி பல மதிப்புகள் சேமிக்க முடியும்?
256. நீங்கள் 256 வெவ்வேறு ASCII எழுத்துக்களை வேண்டும் என்றால் சிக்கல்,, என்பது
இது அங்கு நீங்கள் திரும்ப நினைத்தால், மற்றும் இந்த நினைவில்கொள்ள ஒன்று அல்ல.
நீ பெரிய ஆஸ்கி விளக்கப்படம் திரும்ப நினைத்தால் ஆனால் நாம் வாரங்கள் முன்பு இருந்தது,
அந்த வழக்கில், 128 அல்லது 256 ASCII எழுத்துக்களை இல், இருந்தன.
நாம் அனைத்து 0 இன் முறைகள் மற்றும் 1 தான் பயன்படுத்தப்படுகிறது.
நீங்கள் ஒரு பிழை கண்டுபிடிக்க முடியும் விரும்பினால் ஒரு பிரச்சினை.
நீங்கள் ஏற்கனவே உங்கள் பாத்திரங்களின் 256 மதிப்புகள் பயன்படுத்தி என்றால், ஏனெனில்,
இப்போது நீங்கள் சொல்வது எந்த வகையில் ஏனெனில் நீங்கள் உண்மையில், மேலே ஏற்பாடு செய்யவில்லை
"இது ஒரு சட்ட பாத்திரம் அல்ல; இந்த சில பிழையான செய்தி."
அதனால் என்ன உலகம் இல்லை, அவர்கள் அடுத்த பெரிய மதிப்பு பயன்படுத்த,
ஒரு முழு எண்ணாக போல நீங்கள் பிட்கள் ஒரு பைத்தியம் எண் அதனால்,
4 பில்லியன் முடியும் மதிப்புகள் 32, அதனால் நீங்கள் எளிமையாக, பயன்படுத்தி முடியும்
அடிப்படையில், அவர்கள் 257, 1, இது ஒரு பிழை என சில சிறப்பு பொருள் உள்ளது.
>> எனவே எப்படி இந்த வேலை பார்க்கிறேன். வரி 246 இல், இந்த பெரிய போது வளைய வேண்டும்
அந்த fgetc அழைக்கிறார்கள்; பின்னர் f பொருள் கோப்பு, getc, மற்றும் stdin.
இது என்று இன்னும் துல்லியமான வழி மாறிவிடும் "விசைப்பலகை உள்ளீடு வாசிக்க."
நிலையான உள்ளீட்டு அதாவது விசைப்பலகை, நிலையான வெளியீடு, திரை பொருள்
நாம் pset 4 இல் காணலாம் இது நிலையான பிழை,,, திரை பொருள்
ஆனால் அதை திரையில் ஒரு சிறப்பு பகுதியாக இணைத்து இல்லை என்று
நீங்கள் அச்சிட நோக்கம் என்று உண்மையான வெளியீட்டை; ஆனால் எதிர்காலத்தில் அது மேலும்.
எனவே fgetc வெறும் விசைப்பலகை இருந்து ஒரு பாத்திரம் வாசிக்க, மற்றும் அதை சேமிக்க வேண்டும்?
கேட்ச் அதை சேமித்து, பின்னர் சரி, அதனால் நான் இங்கே சில பூலியன் இணைப்புச்சொற்கள் பயன்படுத்தி வருகிறது,
அதை n, அதனால் பயனர் உள்ளிட தாக்கியது \ சமமாக இல்லை என்பதை சரிபார்க்க.
நாம் அந்த புள்ளி, சுழற்சி முடிவில் நிறுத்த வேண்டும், மற்றும் நாம் பார்க்க வேண்டும்
உங்களுக்கு தெரியுமா அல்லது நினைக்கிறேன் என்றால், சிறப்பு நிலையான, EOF, - அது என்ன நிற்க வேண்டும்?
கோப்பு முடிவு. நான் விசைப்பலகை உள்ள தட்டச்சு செய்கிறேன் என்றால், ஏனெனில் இந்த, அறிவுப்பூர்வமாக வகையாக
இந்த தொடர்பு இல்லை கோப்பு, உண்மையில் அங்கு
ஆனால் இந்த குறிக்கும் பொதுவான கால வரிசைப்படுத்த
வேறு எதுவும் மனித விரல்கள் இருந்து வருகிறது. EOF. கோப்பு முடிவு.
ஒரு ஒதுக்கி, நீங்கள் எப்போதும் உங்கள் விசைப்பலகை உள்ள கட்டுப்பாட்டு ஈ அடிக்க செய்து இருந்தால்,
நீங்கள் இன்னும் வேண்டும் என்று; நீங்கள் கட்டுப்பாடு கேட்ச் ஹிட் தான்.
ஆனால் கட்டுப்பாட்டை ஈ இந்த சிறப்பு நிலையான என்று EOF அனுப்புகிறது.
>> எனவே இப்போது நாம் சில மாறும் நினைவக ஒதுக்கீடு இல்லை.
N + 1> திறன், இப்போது நான் என் சொல்கிறேன் என்றால்.
n தான் எவ்வளவு பைட்டுகள், இடையகம் தற்போது
நீங்கள் தற்போது பயனர் இருந்து கட்டிட என்று சரம்.
நீங்கள் பஃப்பரில் திறன் விட உங்கள் இடையகம் மேலும் எழுத்துக்கள் இருந்தால்,
உள்ளுணர்வாக, என்ன நாம் செய்ய வேண்டும் அதிக திறன் ஒதுக்க வேண்டும்.
நான் இங்கே கணித சில மீது ஆடையெடு போகிறேன்
இங்கு தான் இந்த செயல்பாடு கவனம்.
நீங்கள் malloc என்ன, அல்லது குறைந்த பட்சம் பொதுவாக பழக்கமான.
Realloc என்ன ஒரு யூகம் எடுத்து. [மாணவர் பதில், புரிந்து]
>> சரி. அது மிகவும் நினைவக சேர்த்து இல்லை; அது பின்வருமாறு நினைவக reallocates:
நீங்கள் அந்த நினைவகம் இன்னும் கொடுக்க சரம் இறுதியில் அறையில் இன்னும் இருந்தால்
அதை முதலில் நீங்கள் கொடுக்கும் விட, நீங்கள் கூடுதல் மெமரி கிடைக்கும்.
எனவே நீங்கள் மீண்டும் மீண்டும் மீண்டும் மீண்டும் சரங்களை எழுத்துக்கள் வைத்தது.
அந்த வழக்கு இல்லையென்றால் ஆனால், ஏனெனில் நீங்கள் நீண்ட காத்திருந்தனர்
மற்றும் சீரற்ற ஏதோ நினைவகத்தில் plopped கிடைத்தது, ஆனால் கூடுதல் இல்லை
இங்கு நினைவு, நல்லது. Realloc, நீங்கள் அனைத்து கனரக தூக்கும் பயிற்சி செய்ய போகிறாள்
நீங்கள் இதுவரை இங்கே இருந்து படித்த சரம் நகர்த்த
அங்கு அதை வைத்து, பின்னர் நீங்கள் அந்த இடத்தில் சில விமான கொடுக்க.
அதனால் கையில் ஒரு அலை கொண்டு, என்னை என்ன GetString செய்து என்று சொல்கிறேன்
இது ஒரு சிறிய தாங்கல், ஒருவேளை 1 ஒற்றை தன்மை, தொடங்கும்
மற்றும் 2 எழுத்துக்களுக்கு பயனர் வகைகள் என்றால், GetString நிறைவடைகிறது
realloc அழைப்பு மற்றும் ஓ ', மியூச்சுவல் 1 தன்மையை போதுமானதாக இல்லை.
எனக்கு 2 எழுத்துக்கள் கொடுக்க. ' நீங்கள், லூப் தர்க்கம் மூலம் படித்து பிறகு
அது, ஓ ', 3 எழுத்துக்களை தட்டச்சு பயனர் சொல்ல நடக்கிறது.
இப்போது இல்லை 2 ஆனால் 4 எழுத்துக்கள் எனக்கு கொடுக்க, பிறகு என்னை 16 மற்றும் 32 கொடுக்க பிறகு, என்னை 8 கொடுக்க. '
நான் திறன் ஒவ்வொரு முறையும் இரட்டிப்பாக்க என்று நான் உண்மையில்
தாங்கல் மெதுவாக வளர போவதில்லை என்று பொருள்.
இது வேகமான வளர்ச்சி நடக்கிறது, மற்றும் அந்த பயன்படுத்தி இருக்கலாம் என்ன?
நான் ஏன் பயனர் கூட, இடையக அளவு இருமடங்காக
வெறும் விசைப்பலகை இருந்து 1 கூடுதல் தன்மை வேண்டும்?
[மாணவர் பதில், புரிந்து]. >> என்ன என்று?
சரியாக. நீங்கள் அடிக்கடி வளர இல்லை.
இந்த ஒரு வெறும் வகையான - you're இங்கே உங்கள் சவால் ஏற்படுத்துவதற்கான.
யோசனை அது மெதுவாக ஏனெனில் நீங்கள், realloc நிறைய அழைக்க வேண்டாம் என்று இருப்பது.
நீங்கள் விரைவில் காண்பீர்கள் நீங்கள், நினைவகத்தை இயக்க அமைப்பு ask எந்த நேரம்
எதிர்கால பிரச்சனை தொகுப்பில், இது சில நேரம் எடுத்து முனைகிறது.
சில விண்வெளி வீணாக்குகிறாய் கூட, நேரம் என்று அளவு குறைக்கும் எனவே, ஒரு நல்ல விஷயம் இருக்கிறது.
>> ஆனால் நாம் இங்கு GetString இறுதி பகுதி வழியாக படிக்க வேண்டும்,
மீண்டும், இங்கே ஒவ்வொரு வரியும் புரிந்து இன்று மிகவும் முக்கியம் இல்லை.
ஆனால் அது இறுதியில் மீண்டும் malloc அழைக்கும் கவனிக்க, அதை ஒதுக்கீடு
இது சரம் பல பைட்டுகள் வேண்டும் என சரியாக
பின்னர் அதிகமான பெரிய தாங்கல், இலவச அழைப்பு விடுத்தார் தூக்கி எறியும்
இது உண்மையில் பல முறை இரு மடங்காக இருந்தது.
சுருக்கமாக, அந்த GetString அனைத்து இந்த நேரம் உழைக்கும் வருகிறது எப்படி.
அது அனைத்து மீண்டும் மீண்டும் மீண்டும் ஒரு நேரத்தில் ஒரு பாத்திரம் வாசிக்க
மற்றும் சில கூடுதல் நினைவகம் தேவை ஒவ்வொரு முறையும், அது realloc அழைப்பு விடுத்தார் அது இயங்கு கேட்கிறார்.
எந்த கேள்விகள்? எல்லாம் சரி.
>> ஒரு தாக்குதல். நாம் சுட்டிகள் புரிந்து இப்போது, அல்லது குறைந்தது
, சுட்டிகள் அதிகரித்தது தெரிந்திருந்தால்
உலகம் முழுவதும் விழுந்துவிடும் தொடங்குகிறது எப்படி என்று பார்ப்போம்
நீங்கள் மிகவும் adversarial செய்த எதிராக பாதுகாக்க என்றால்,
உங்கள் அமைப்பில் ஹேக் முயற்சி மக்கள்.
சில பதிவு குறியீடு சுற்றிவளைக்கும் உங்கள் மென்பொருள் திருட முயற்சி மக்கள்
அவர்கள் இல்லையென்றால் இன்னும் தட்டச்சு செய்ய வேண்டும் என்று
வெறும் சி குறியீடு உள்ளது, இங்கு இந்த உதாரணம் பாருங்கள்
என்று கீழே உள்ள முக்கிய செயல்பாடு உள்ளது, என்று, ஒரு செயல்பாடு foo அழைப்பு
என்ன இது foo செய்ய போகிறது? [மாணவர்] ஒரு ஒற்றை வாதம்.
>> ஒற்றை வாதம். எனவே argv [1], இது பயனர் தட்டச்சு முதல் வார்த்தை பொருள்
a.out அல்லது அதை பிறகு கட்டளை வரியில் திட்டம் என்று அழைக்கப்படுகிறது.
Foo எனவே, மேலே, ஒரு எரிப்பதை * எடுத்து, ஆனால் எரிப்பதை * தான் என்ன?
சரம். அங்கு புதிய எதுவும் இங்கே, அதாவது சரம் தன்னிச்சையாக பார் என்று வருகிறது.
இங்கே இந்த வரிசையில், கரி கேட்ச் [12], அரை தொழில்நுட்ப ஆங்கிலம் வகையான இல், இந்த வரி என்ன செய்கிறார்?
இந்த வரிசை -? கதாபாத்திரங்கள். எனக்கு 12 எழுத்துக்கள் ஒரு வரிசை கொடுக்க.
எனவே நாம் இந்த இடையக கூப்பிடுகிறேன். இது தொழில்நுட்ப கேட்ச் என்று, ஆனால் நிரலாக்க ஒரு இடையக
நீங்கள் சில விஷயங்களை உள்ளே போட முடியும் இடத்தில் ஒரு கூட்டத்தை பொருள்
>> பின்னர் இறுதியாக, memcpy, நாம் முன் பயன்படுத்தப்படும்.
ஆனால் ஒருவேளை நீங்கள் அதை என்ன யூகிக்க முடியும். அதை நினைவு நகலெடுக்கிறது.
அது என்ன? சரி, அது வெளிப்படையாக, கேட்ச் நுழைந்து, அதன் உள்ளீடு, பட்டியில் நகலெடுக்கிறது
ஆனால் மட்டுமே பட்டியில் நீளம்.
ஆனால் இங்கே ஒரு பிழை உள்ளது.
சரி, இவ்வளவு தொழில்நுட்ப நாம் உண்மையில் (பார்) சரியான நேரம் என்று x sizeof (கரி), strlen செய்ய வேண்டும்.
ஆனால் இங்கே மிக மோசமான நிலையில், அது அந்த that's நாம் கருதி கொள்வோம் - அதனால், சரி.
பின்னர் 2 பிழைகள் உள்ளன. எனவே sizeof (கரி), அனைத்து சரி, இந்த ஒரு சிறிய பரந்த செய்யலாம்.
எனவே இப்போது என்ன இது ஒரு பிழை, இன்னும்?
[மாணவர் பதில், புரிந்து] என்ன >> சோதனை? சரி, நாம் சோதனை
NULL, உங்கள் சுட்டிக்காட்டி NULL போது மோசமான ஏற்படலாம் என்பதால்,
அங்கே சென்று கூடும், மற்றும் நீ null சென்று கூடாது, ஏனெனில்
* ஆபரேட்டர் அதை dereferencing மூலம்.
எனவே நல்லது, நாம் என்ன செய்கிறோம்? தர்க்கரீதியாக ஒரு குறைபாடு கூட இங்கே இல்லை.
[மாணவர் பதில், புரிந்து]
>> இருந்தால் argc ≥ 2 சோதனை?
சரி, இந்த திட்டத்தில் 3 பிழைகள் இங்கே இல்லை, அதனால்.
பயனர் உண்மையில் argv [1], நல்ல முறையில் எதையும் தட்டச்சு நாம் சோதனை.
எனவே மூன்றாவது பிழை என்ன? அப்படியா?
நல்ல [மாணவர் பதில், புரிந்து] >>.
எனவே நாம் ஒரு காட்சியில் சோதிக்கப்பட்டது. நாம் உட்குறிப்பாக இன்னும் நினைவகம் நகலெடுக்க வேண்டாம் சோதிக்கப்பட்டது
பார் நீளம் அதிகமாக விட.
எனவே சரம் என்றால் தட்டச்சு பயனர் 10 எழுத்துக்கள் நீளமாக உள்ளது,
இந்த 'மட்டும் 10 எழுத்துக்களை நகலெடுக்க.', என்று
அந்த பரவாயில்லை, ஆனால் என்ன என்றால் வரியில் ஒரு வார்த்தை தட்டச்சு பயனர்
ஒரு 20 தன்மையை வார்த்தை போன்ற; இந்த என்ன என்ற பட்டியில் இருந்து நகல் 20 எழுத்துக்கள் என்று, இல்லையா?
மற்றபடி எங்கள் இடையக என்று அழைக்கப்படும் காட், இது நீங்கள் தரவு எழுதினார் பொருள்
நீங்கள் சொந்த வேண்டாம் என்று 8 பைட் இடங்களுக்கு,
நீங்கள் அவர்களுக்கு ஒதுக்கப்பட்ட இல்லை என்ற அர்த்தத்தில் அவர்கள் சொந்தமாக இல்லை.
இந்த, பொதுவாக இடையக வழிதல் தாக்குதல் என்று என்ன இருக்கிறது
உணர்வு அல்லது இடையகம் மிஞ்சு தாக்குதல், மற்றும் அதை தாக்குதல் என்று இருந்தால் பயனர்
அல்லது உங்கள் செயல்பாடு என்று அந்த திட்டம், தவறாக இதை
என்ன உண்மையில் அடுத்த மிக மோசமான இருக்க முடியும் நடக்கிறது.
>> அது இங்கே இந்த படத்தை பார்க்கலாம்.
இந்த படம் நினைவகம் உங்கள் ஸ்டேக் பிரதிபலிக்கிறது.
மேலும், ஒவ்வொரு முறை நீங்கள் ஒரு செயல்பாடு என்று அந்த நினைவு
நீங்கள் ஸ்டேக் இந்த சிறிய சட்ட செய்து பின்னர் மற்றொரு பின்னர் மற்றொரு பின்னர் மற்றொரு.
மற்றும் இதுவரை நாம் வெறும் வகையான நான் செவ்வகங்கள் இந்த விட்டு எண்ணக்கூடிய
அங்கு குழுவில் அல்லது இங்கே திரையில் ஒன்று.
ஆனால் நாம் அந்த செவ்வக ஒரு பெரிதாக்க என்றால்,
நீங்கள் ஒரு செயல்பாடு foo அழைக்க போது, அது இன்னும் ஸ்டாக் இருக்கு என்று மாறும்
அந்த சட்டம் மற்றும் அந்த செவ்வகத்தின் உள்ளே
விட நாம் இடமாற்று பற்றி போல் தான் x மற்றும் y மற்றும் a மற்றும் b.
அது, சில குறைந்த நிலை விவரங்கள் உள்ளன என்று மாறும்
அவர்கள் மத்தியில் முகவரியை கொடுங்கள்.
முக்கிய foo அழைத்தால், அது மாறிவிடும், முக்கிய foo தெரிவிக்க வேண்டும்
கணினியின் நினைவகம் என்ன முக்கிய முகவரி.
இல்லையெனில், ஏனெனில், விரைவில் foo என, இங்கே இந்த வழக்கில் என, இயக்கும் செய்யப்படுகிறது
ஒரு முறை நீங்கள், foo இறுதியில் இந்த நெருக்கமான சுருள் பிரேஸ் அடைய
நிரல் கட்டுப்பாட்டை செல்லவேண்டும் அமைந்துள்ள எப்படி கர்மம் foo தெரியும்?
அந்த கேள்விக்கு பதில் இங்கே அந்த சிவப்பு செவ்வகம் உள்ளது என்று கூறினார்.
, இந்த ஒரு சுட்டிக்காட்டி பிரதிபலிக்கிறது, இது தற்காலிகமாக சேமித்து, கணினி வரை தான்
என்று அழைக்கப்படும் ஸ்டேக்கில் அதனால் விரைவில் foo என முக்கிய முகவரி இயக்கும் செய்யப்படுகிறது,
கணினி அங்கு செல்ல முக்கிய என்ன வரி தெரியும்.
சேமித்த சட்ட சுட்டிக்காட்டி இந்த ஒத்த தொடர்புடையது.
இங்கே எரிப்பதை * பட்டியில் என்ன பிரதிபலிக்கிறது?
சரி, இப்போது இந்த நீல பிரிவில் இங்கே foo சட்டத்தில் இருக்கும், பட்டியில் என்ன?
சரி, இவ்வளவு பட்டியில் foo செயல்பாடு வெறும் வாதம் ஆகும்.
>> எனவே இப்போது நாம் நன்கு படத்தை வந்துவிட்டோம்.
திரையில் அதிக பொருள் மற்றும் திசைதிருப்பல்கள் இல்லை
ஆனால் இந்த ஒளி நீல பிரிவில் நாம் இடமாற்று போன்ற ஏதாவது சாக்போர்டு மீது வரைந்து கொண்டிருக்கிறேன் என்று.
என்று, பார் என்று இப்போது foo ஒரு சட்ட அது மட்டும் தான்
இந்த அளவுரு உள்ளது.
ஆனால் வேறு என்ன இங்கே இந்த குறியீடு தெரிவிக்கிறது, ஸ்டாக் இருக்க வேண்டும்?
கரி கேட்ச் [12]. எனவே, நினைவகம் 12 சதுரங்கள் பார்க்க வேண்டும்
கேட்ச் எனப்படும் ஒரு மாறுபடும் ஒதுக்கீடு.
உண்மையில் நாம் திரையில் என்று இல்லை.
மிக சிறந்த உள்ளது கேட்ச் [0] இந்த வரைபடத்தில், பின்னர் ஆசிரியர்
சதுரங்கள் அனைத்து வரைய தொந்தரவு ஆனால் அங்கு 12 உண்மையில் இல்லை
ஏனெனில் நீங்கள் கீழே வலது பார் என்றால், கேட்ச் [11], நீங்கள் 0 இருந்து கணக்கெடுக்கும் போது, 12 போன்ற பைட்டுகள் ஆகும்.
ஆனால் இங்கே பிரச்சனை: எந்த திசையில் கேட்ச் வளர்ந்து வருகிறது?
மேலிருந்து விதமான சரி? அது மேலே தொடங்கி கீழே வளரும் என்றால்,
நாம் இங்கே நம்மை மிகவும் விமான விட்டு போல இல்லை.
நாம் வகையான, ஒரு மூலையில் நம்மை வர்ணம் பூசப்பட்ட
அந்த கேட்ச் [11] ஸ்டாக் சட்டகமானது சுட்டிக்காட்டி எதிராக உரிமை வரை இது பார், எதிராக உரிமை உள்ளது,
இது மீண்டும் முகவரியை எதிராக உரிமை உள்ளது; இன்னும் அறை உள்ளது.
நீங்கள் திருகு என்றால் உட்குறிப்பு, பின், என்ன
நீங்கள் ஒரு 12 பைட் தாங்கல் இந்த 20 பைட்டுகள் படிக்க முயற்சி?
எங்கே அந்த 8 கூடுதல் பைட்டுகள் செல்கிறோம்?
எல்லாவற்றையும் உள்ளே, அவற்றில் சில முக்கியமான சூப்பர் உள்ளது.
மிக முக்கியமான விஷயம், திறன், அங்கே மீண்டும் முகவரியை சிவப்பு பெட்டி.
நீங்கள் தற்செயலாக அல்லது adversarially என்று நினைக்கிறேன், ஏனெனில்
அந்த 4 பைட்டுகள், என்று சுட்டிக்காட்டி முகவரி, மேலெழுதும்
வெறும் குப்பை கொண்டு, ஆனால் நினைவகத்தில் ஒரு உண்மையான முகவரி பிரதிநிதித்துவப்படுத்துவதாக நடக்கும் என்று பல?
தர்க்கரீதியாக implicaiton, என்ன?
[மாணவர் பதில்கள், புரிந்து] >> சரியாக. Foo திரும்பியவுடன்
மற்றும் வெற்றி சுருள் பிரேஸ் என்று, திட்டம், முக்கிய திரும்ப முடியாது தொடர போகிறார்
அது சிவப்பு பெட்டியில் என்ன முகவரியை திரும்ப நடக்கிறது.
>> இப்போது, சுற்றிவளைக்கும் மென்பொருள் பதிவு வழக்கில்,
விழாவில் திரும்பி வரும் என்று முகவரி என்ன உள்ளது
பொதுவாக நீங்கள் மென்பொருள் வழங்கிய பிறகு என்று உங்கள் பதிவு குறியீடு உள்ளிட்ட என்று?
நீங்கள் இங்கே போவதில்லை என்ற தந்திரம் கணினியின் வரிசைப்படுத்த, ஆனால் அதற்கு பதிலாக, இங்கே சென்று முடியும்.
நீங்கள் உண்மையில் புத்திசாலி என்றால் அல்லது, ஒரு விரோதி உண்மையில், விசைப்பலகை இல் தட்டச்சு
உதாரணமாக, ஒரு உண்மையான வார்த்தை இல்லை 20 எழுத்துகள், ஆனால் ஒருவேளை அவர்
குறியீடு பிரதிநிதித்துவப்படுத்தும் சில எழுத்துகளை வகைகள்?
இது சி குறியீடு போகிறேன் இல்லை, அது கதாபாத்திரங்கள் இருக்கும் நடக்கிறது
அந்த பைனரி இயந்திர குறியீடுகள், 0 மற்றும் 1 என்ற பிரதிநிதித்துவம்.
ஆனால் அவர்கள் எப்படியோ GetString வரியில் ஒட்டலாம் வேண்டும், அதை செய்ய போதுமான வீழ்வது தான் நினைக்கிறேன்
அடிப்படையில் குறியீடு தொகுக்கப்பட்ட என்று ஒன்று,
கடந்த 4 பைட்டுகள் என்று திரும்ப முகவரியை மேலெழுதும், மற்றும் அந்த உள்ளீடு என்ன முகவரியை செய்வான்?
இந்த சிவப்பு செவ்வகம் இடையக முதல் பைட் முகவரி உள்ள சேமிக்கிறது.
எனவே நீங்கள் மிகவும் புத்திசாலி இருக்க வேண்டும், மற்றும் இந்த சோதனை மற்றும் பிழை நிறைய இருக்கிறது
மோசமான அங்கே மக்கள், ஆனால் நீங்கள் இந்த தாங்கல் எவ்வளவு பெரிய கண்டுபிடிக்க முடியும் என்றால், இன்னும்
நீங்கள் நிரலுக்கு உள்ளீட்டு கடந்த சில பைட்டுகள் வழங்கும் என்று
உங்கள் இடையகம் தொடக்கத்தில் முகவரி சமமாக இருக்கும் நடக்கும்,
நீங்கள் இதை செய்ய முடியும். நாம் சொன்னால், பொதுவாக, ஹலோ, மற்றும் \ 0, அந்த இடைப்பட்ட ல் முடிவடைகிறது என்ன.
ஆனால் நாம் இன்னும் புத்திசாலி தான், மற்றும் நாம் பொதுவாக தாக்குதல் குறியீடு அழைக்கிறேன் என்ன என்று இடையக பூர்த்தி செய்தால்,
ஒரு, ஒரு, ஒரு, ஒரு: தாக்குதல், தாக்குதல், தாக்குதல், தாக்குதல், இது மோசமான ஒன்று என்று ஒன்று உள்ளது.
சரி, என்ன உண்மையில் புத்திசாலி என்றால், நீங்கள் இதை செய்ய வேண்டும் நடக்கிறது:
80, கோ, 35, 08: இங்கே சிவப்பு பெட்டியில் எண்கள் வரிசை ஆகும்.
என்று இங்கே தான் என்று பல பொருந்துகிறதா என்று பாருங்கள்.
இது தலைகீழ் வரிசையில், ஆனால் சில நேரம் அதிக.
இந்த பதிலுக்கு முகவரியை வேண்டுமென்றே மாற்றங்கள் செய்யப்பட்டுள்ளது என்று அறிவிப்பு
இங்கே முகவரியை வரை சமமாக, முக்கிய இல்லை முகவரியை.
மோசமான பையன் சூப்பர் ஸ்மார்ட் இருக்கும் என்றால், அவர் அந்த தாக்குதல் குறியீடு சேர்க்க போகிறார்
ஒன்று, போன்ற 'பயனர் கோப்புகள் அனைத்தையும் நீக்கு.'
அல்லது 'நான் நுழைய முடியும் என்று ஒரு பயனர் கணக்கை உருவாக்கவும்.' ', கடவுச்சொற்கள் காப்பி' அல்லது
எதுவுமே; இந்த ஆபத்து மற்றும் சி சக்தி ஆகும்
நீங்கள் சுட்டிகள் வழியாக நினைவகம் ஏனெனில்
நீங்கள் எனவே நீங்கள் ஒரு கணினியின் நினைவகத்தை வேண்டும் எதையும் எழுத முடியும்.
நீங்கள் ஒரு கணினி நீங்கள் வெறுமனே வேண்டும் எதையும் செய்ய முடியும்
அது தனது சொந்த நினைவக இடத்தில் குதித்தால்.
எனவே, இந்த நாளில், பல திட்டங்கள் மற்றும் சமரசம் என்று பல வலைத்தளங்கள்
இந்த சாதகமாக பயன்படுத்தி, மக்கள் கீழே கொதிக்க.
இந்த, ஒரு சூப்பர் அதிநவீன தாக்குதல் போல இருக்கும்
ஆனால் அது எப்போதும் வழி தொடங்க முடியாது.
>> உண்மையில், என்ன கெட்ட மக்கள் பொதுவாக செய்வேன் என்று
அது ஒரு கட்டளை வரியில் ஒரு திட்டம் அல்லது ஒரு GUI திட்டம் அல்லது ஒரு இணையதளத்தில், என்று
நீங்கள் அர்தமற்று வழங்கும் தொடங்க உள்ளது.
நீங்கள், தேடல் புலம் மற்றும் வெற்றி நுழைய ஒரு பெரிய வார்த்தை தட்டச்சு
நீங்கள் வலைதளம் செயலிழந்தாலும் பார்க்க காத்திருக்க.
அல்லது நீங்கள் நிரல் சில பிழை செய்தி ஏற்படுகிறது என்பதை பொறுத்திருந்து.
நீங்கள் அதிர்ஷ்டம் கிடைக்கும் என்றால், ஏனெனில் கெட்ட பையன்,
மற்றும் நீ, திட்டம் இழக்கப்பட்டால் சில வேடிக்கையான உள்ளீடு வழங்கும்
அந்த ப்ரோக்ராமர் உங்கள் கெட்ட நடத்தை எதிர்பார்க்கலாம் என்று அர்த்தம்
இதில், போதுமான முயற்சி, ஒருவேளை நீங்கள் முடியும்
போதுமான சோதனை மற்றும் பிழை, ஒரு துல்லியமான தாக்குதலை முன்னெடுக்க எப்படி கண்டுபிடிக்க.
பாதுகாப்பு மிகவும் அதிகமாக ஒரு பகுதியாக தான் முற்றிலும் இந்த தாக்குதல்களை தவிர்த்து, ஆனால் அவற்றை கண்டறிவதற்கான
உண்மையில் பதிவுகள் பார்த்து பைத்தியம் உள்ளீடுகளை உங்கள் இணைய தட்டச்சு மக்கள் என்ன பார்த்து.
என்ன தேடல் சில இடையக நிரம்பி வழிகிறது நம்பிக்கையில் உங்கள் இணையத்தளத்தில் மக்கள் தட்டச்சு?
ஒரு வரிசைக்கு என்ன சாதாரண அடிப்படைகளை இந்த அனைத்து செய்யப்படுகிறது,
என்ன அது நினைவகத்தை ஒதுக்க மற்றும் பயன்படுத்த அர்த்தம்?
அந்த தொடர்பான, கூட, இந்த.
>> அதனால் தான் மீண்டும் ஒரு வன் உள்ளே ஏறெடுத்தும் பார்க்க போகலாம்.
எனவே நீங்கள் நினைவுகூர ஒரு வாரம் அல்லது இரண்டு முன்பு அந்த கோப்புகளை இழுத்து போது
உங்கள் மறுசுழற்சி தொட்டிக்கு அல்லது குப்பை முடியும், என்ன நடக்கும்?
[மாணவர்] எதுவும். >> சரி, முற்றிலும் இல்லை. நீங்கள் குறைந்த ரன் இறுதியில் என்றால்
வட்டு மீது, விண்டோஸ் அல்லது மேக் OS நீங்கள் கோப்புகளை நீக்கும் ஆரம்பிக்கும்.
நீங்கள் அங்கு ஏதாவது இழுத்து ஆனால், அது அனைத்து பாதுகாப்பு இல்லை.
உங்கள் roomate, நண்பர் அல்லது குடும்ப உறுப்பினர் செய்ய உள்ளது இரட்டை கிளிக் செய்து, voila.
நீங்கள் நீக்க முயற்சி என்று அனைத்து மேலோட்டமான கோப்புகள் இல்லை.
நமக்கு மிக மிக குறைந்த பட்சம் நீங்கள் சரியான கிளிக் அல்லது கிளிக் கட்டுப்படுத்த வேண்டும் என்று
மற்றும் வெற்று குப்பை, அல்லது அந்த மாதிரி ஏதாவது.
ஆனால் அதன் பிறகும், அந்த மிகவும் தந்திரம் செய்ய முடியாது.
உங்கள் நிலைவட்டில் ஒரு கோப்பு போது என்ன நடக்கிறது என்பதால்
சில வார்த்தை ஆவணம் அல்லது சில JPEG பிரதிபலிக்கிறது?
மேலும், இந்த உங்கள் நிலைவட்டில் குறிக்கிறது, மற்றும் நாம் இங்கே இந்த சிராய் அந்த கோப்பு பிரதிபலிக்கிறது என்று
அது 0 மற்றும் 1 என்ற ஒரு மொத்தமாக கொண்ட.
நீங்கள் மட்டும் trashcan அல்லது மறுசுழற்சி தொட்டிக்கு கோப்பை இழுத்து போது என்ன நடக்கும்
ஆனால் அதை காலி?
எதுவும் வகையான. அது இப்போது முற்றிலும் எதுவும் இல்லை.
ஒரு சிறிய ஒன்று இந்த அட்டவணை வடிவில் நடக்கிறது என்பதால் இப்போது, தான் ஒன்றும் இல்லை.
ஒரு கணினியின் நினைவகம் உள்ளே தரவுத்தள அல்லது அட்டவணையில் சில வகையான இல்லை
அந்த அடிப்படையில், கோப்புகள் பெயர்கள் 1 நிரலை கொண்டுள்ளது
இந்த இடம் 123, ஒரு சீரற்ற எண் இருக்கும் இடத்தில் கோப்பின் இடம், 1 நிரலை.
நாம் x.jpg போல, மற்றும் இடம் 123 வேண்டும்.
உங்கள் குப்பையை காலி போது என்ன, பின் நடக்கும்?
விட்டு செல்லும். ஆனால் என்ன விட்டு போக முடியாது 0 மற்றும் 1 இன் உள்ளது.
>> அதனால் என்ன, பின்னர், இணைப்பு 4 pset?
நன்றாக, pset 4, நாங்கள் தவறுதலாக அழித்துவிட்டேன் தான்
இந்த புகைப்படங்கள் அனைத்தும் அந்த காம்பாக்ட் ஃபிளாஷ் அட்டை,
அல்லது கெட்ட அதை சிதைந்த ஆனது, ஏனெனில்
0 மற்றும் 1 இன் இன்னும் இல்லை என்று அர்த்தம் இல்லை.
ஏதோ ஊழல் நடந்தது ஏனெனில் அவர்களுக்கு ஒரு சில இழந்தது
சில 0 இன் 1 மற்றும் 1 இன் ஆனது என்ற அர்த்தத்தில் 0 அது மாறியது.
தரமற்ற மென்பொருள் அல்லது குறைபாடுள்ள வன்பொருள் காரணமாக கெட்ட விஷயங்கள் நடக்கலாம்.
ஆனால் அந்த பிட்கள் பல, ஒருவேளை அவர்கள் கூட 100%, அங்கு இன்னும்
இது JPEG 1 தொடங்கினார் கணினி அல்லது கேமரா தெரியாது என்று மட்டும் தான்
மற்றும் JPEG 2 தொடங்கினார், ஆனால் நீங்கள், ப்ரோக்ராமர்,
அந்த JPEG படங்கள் அல்லது அவர்கள் இருக்க என்ன அங்கு ஆர்வலராகவும் ஒரு பிட், இணைந்து, தெரியுமா,
நீங்கள் 0 மற்றும் 1 என்ற ஆய்வு மற்றும் ஓ ', சொல்ல முடியாது. JPEG. , JPEG, ஓ. '
நீங்கள் அடிப்படையில் தான் ஒரு ஒரு நிரலை எழுத அல்லது போது சுழற்சி
அந்த கோப்புகளை ஒவ்வொரு ஒரு குணமாகும்.
பாடம் பின்னர், "பாதுகாப்பாக" உங்கள் கோப்புகளை அழித்தலை தொடங்க உள்ளது
நீங்கள் முற்றிலும் இதை தவிர்க்க விரும்பினால். ஆமாம்?
[மாணவர் கேள்வி, புரிந்து]
>> நீங்கள் முன்பு இருந்ததை விட அதிக நினைவகம் வேண்டும் -
ஓ! கேள்வி நல்ல. ஏன், பிறகு, குப்பையை காலியாக்கி பின்னர்,
உங்கள் கணினியில் நீங்கள் முன்பு இருந்ததை விட அதிக காலியிடம் இல்லை என்று நீங்கள் சொல்ல?
சுருக்கமாக, இது பொய் காரணம். மேலும் தொழில்நுட்ப ரீதியாக, மேலும் இடம் இல்லை.
இப்போது நீங்கள் சொன்ன காரணம் என்று கோப்பு முறை இருந்தது, நீங்கள் மற்ற பொருட்களை வைக்க முடியாது,
ஆனால் அந்த, பிட்கள் போகிறீர்கள் என்று அர்த்தம் இல்லை
அந்த பிட்கள் உங்கள் பாதுகாப்பு, உதாரணமாக, அனைத்து 0 மாறிய வருகின்றன என்று அர்த்தமல்ல.
மாறாக, நீங்கள் "பாதுகாப்பாக" அழிக்கும் கோப்புகள், அல்லது உடல் சாதனம் அழிக்க வேண்டும்,
என்று அந்த சுற்றி, சில நேரங்களில், ஒரே வழி.
ஏன் நாம் அந்த பகுதி பயங்கரமாக குறிப்பு வெளியே இல்லை, நாங்கள் திங்களன்று நீங்கள் காண்பீர்கள்.
CS50.TV