[Powered by Google Translate] [5 ہفتہ] [ڈیوڈ J. Malan - ہارورڈ یونیورسٹی] یہ [CS50 ہے. CS50.TV] - یہ CS50، 5 ہفتہ ہے. آج اور اس ہفتے، ہم عدالتی کی دنیا کا ایک تھوڑا سا متعارف کرانے مسئلے کے تناظر میں 4 مرتب کریں. آج ایک مختصر لیکچر کیونکہ یہاں ایک خصوصی تقریب کے بعد ہے. تو ہم نے ایک جھانکنا لے اور طلباء اور دونوں یکساں والدین آج چڑھاو گے چیزوں ہے کہ افق پر ہیں میں سے کچھ کے ساتھ. ان میں، آپ کو پیر کے طور پر کچھ زیادہ ہم جماعتوں پڑے گا. edX، ہارورڈ اور ایم ائی ٹی OpenCourseWare اور اس سے زیادہ کے لئے نئے آن لائن پہل، پیر، جو پیر کو آئی کا مطلب ہارورڈ یونیورسٹی کے کیمپس پر شروع آپ کو آخری شمار کے طور پر ہے،، 86.000 اضافی سہپاٹھیوں گا CS50 کے لیکچر اور حصوں کے ساتھ ساتھ مندرجہ ذیل رکھا جائے گا walkthroughs اور مسئلہ سیٹ. اور، آپ کو اس کے حصے کے طور پر CS50 اور اب CS50x کی افتتاحی طبقے کے ارکان بن جائیں گے. اب اس کے حصے کے طور پر احساس ہے کہ کچھ upsides ہو ساتھ ساتھ. طالب علموں کے بڑے پیمانے پر کی تعداد کے لئے، اس کے لئے تیار حاصل کرنے، یہ کہنا کافی ہے کہ اگرچہ ہم نے 108 TFs اور کیس ہے، یہ بہت بہترین تناسب طالب علم اساتذہ کی نہیں ہے ایک بار ہم طالب علموں کے 80،000 مارا. ہم بہت سے مسئلہ گریڈنگ کا تعین کرتا ہے دستی طور پر نہیں کر رہے ہیں، اس ہفتے مسئلہ سیٹ میں پیش کیا CS50 چیک کیا جائے گا، جو آلے کے اندر اندر ایک کمانڈ لائن افادیت کی جا رہی ہے کہ آپ ایک بار تم اس کے بعد میں اس ہفتے کے آخر میں اپ ڈیٹ کریں گے. آپ ایک کمانڈ، check50، اپنے اپنے pset پر چلانے کے قابل ہو جائے گا، اور آپ کے طور پر فوری طور پر رائے حاصل ہے کہ آپ کے پروگرام کو درست ہے یا غلط ہے. مختلف ڈیزائن ونیردیشوں کے مطابق جو ہم نے فراہم کی ہے. مسئلہ سیٹ کی تفصیلات میں اس پر مزید. CS50x ہم جماعتوں نے اس کے ساتھ ساتھ استعمال کر رہے ہیں. مسئلہ 4 سیٹ تمام عدالتی کے بارے میں ہے، اور یہ pset واقعی کچھ چیزیں حقیقی زندگی کی طرف سے حوصلہ افزائی کیا گیا تھا جب میں گریجویٹ اسکول میں تھا تو میں جس سے کچھ دیر کے لئے interned Middlesex کاؤنٹی ڈسٹرکٹ اٹارنی کے دفتر کا عدالتی کام کر رہی کے ساتھ میں ان کی برتری عدالتی تفتیش کے ساتھ. کیا اس رقم کے طور پر مجھے لگتا ہے کہ میں گزشتہ چند ہفتوں کا ذکر کیا، ماس ریاست پولیس یا دیگر میں آئے گا، انہوں نے ہارڈ ڈرائیوز اور سی ڈیز اور فلاپی ڈسک اور اس طرح کی طرح چیزوں کو چھوڑ دیں گے، اور پھر عدالتی دفتر کا مقصد تعین کہ کیا تھا یا کسی قسم کے ثبوت نہیں تھا. یہ اسپیشل انویسٹی گیشن یونٹ تھا، تو یہ وائٹ کالر جرائم تھا. یہ جرائم کی زیادہ پریشان طرح، ڈیجیٹل میڈیا کے کچھ قسم کے شامل کچھ تھا. یہ پتہ چلا ہے کہ یہ نہیں ہے کہ بہت سے لوگوں کو یہ کہتے ہوئے ای میل لکھتے ہیں، "میں نے کیا." تو اکثر ان فارنسک تلاش بند نہیں کیا ہے کہ زیادہ پھل، لیکن کبھی کبھی لوگوں کو اس طرح کے ای میل لکھنے ہوں گے. تو کبھی کبھی، کی کوششوں ایوارڈ دیا گیا. لیکن اس عدالتی pset ہم نے pset4 میں گرافکس کا تھوڑا سا گے متعارف کرانے کی قیادت کریں. آپ شاید حاصل کی جاچکی کے لئے ان چیزوں کو لے - ان دنوں - JPEGs، GIFs، اور اس طرح. لیکن اگر تم واقعی اس کے بارے میں کیا سوچتے ہیں، ایک تصویر، روب چہرے کی طرح نقطوں یا پکسلز کی ایک ہی تسلسل کے طور پر ماڈلنگ جا سکتا ہے. روب چہرے کی صورت میں، رنگوں کا ہر طرح ہے، اور ہم انفرادی نقطہ، ورنہ پکسلز کے طور پر جانا جاتا ہے کو دیکھنے کے لئے شروع کر دیا، ایک بار ہم اندر زوم شروع لیکن اگر ہم دنیا کو تھوڑا آسان بنانے اور کا کہنا ہے کہ کہ یہ سیاہ اور سفید میں روب ہے، میں سیاہ فام اور سفید فام کی نمائندگی کرنے کے لئے، ہم بائنری استعمال کر سکتے ہیں. اور اگر ہم بائنری کو استعمال کرنے کے لئے جا رہے ہیں، 1 یا 0، ہم یہ وہی تصویر کا اظہار کر سکتے ہیں روب بٹس کے اس پیٹرن کے ساتھ مسکراتا ہوا چہرہ. 11000011 سفید، سفید، سیاہ، سیاہ، سیاہ، سیاہ، سفید، سفید کی نمائندگی کرتا ہے. اور اس طرح یہ ایک بہت بڑی چھلانگ نہیں ہے تو رنگین تصاویر کے بارے میں بات کرنا شروع کر، چیزیں ہیں جو آپ کو فیس بک پر دیکھیں یا ایک ڈیجیٹل کیمرے کے ساتھ لے جاؤ. لیکن یقینی طور پر جب یہ رنگ آتا ہے، آپ کو زیادہ بٹس کی ضرورت ہے. اور تصاویر کی دنیا میں بہت عام 1 بٹ رنگ استعمال کرنے کے لئے نہیں ہے، کے طور پر اس سے پتہ چلتا ہے، لیکن 24 بٹ رنگ، جہاں آپ نے واقعی میں لاکھوں رنگوں کا حاصل کریں. ، تو کے طور پر اس معاملے میں جب ہم روب آنکھ میں یکبر لاکھوں مختلف رنگین امکانات کے کسی بھی تعداد تھی. تو ہم مسئلہ 4 سیٹ میں walkthrough کے طور پر ساتھ ساتھ میں اس سے ملواتا ہوں، جو معمول 2:30 کی بجائے 3:30 بجے کیونکہ جمعہ کو یہاں لیکچر آج ہو جائے گا. لیکن ویڈیو معمول کل کے طور پر آن لائن ہو جائے گا. ہم آپ کو یہ بھی ایک اور فائل کی شکل سے ملواتا ہوں. یہ جان بوجھ کر پہلے دھمکی نظر مراد ہے، لیکن یہ تو صرف C struct کے لئے کچھ دستاویزات ہے. یہ پتہ چلا ہے کہ مائیکروسافٹ سال پہلے اس شکل کو مقبول بنانے میں مدد ملی ملاقات کی بٹ نقشہ فائل کی شکل، BMP، اور یہ ایک سپر آسان، رنگین گرافیکل فائل کی شکل تھا ہے کہ کچھ وقت کے لئے استعمال کیا گیا تھا ڈیسک ٹاپ پر وال پیپر کے لئے اب بھی کبھی کبھی. اگر آپ ونڈوز ایکس پی اور رولنگ پہاڑیوں اور نیلے آسمان پر واپس لگتا ہے، ہے جو عام طور پر ایک BMP یا بٹ نقشہ نقش تھا. Bitmaps ہمارے لئے مذاق ہے کیونکہ وہ تھوڑی پیچیدگی ہے. یہ 0s اور 1s اس گرڈ کے طور پر آسان طور پر کافی نہیں ہے. اس کے بجائے، آپ ایک فائل کے شروع میں ایک ہیڈر کی طرح چیزیں ہیں. تو دوسرے الفاظ میں، اندر ایک BMP فائل میں 0s اور 1s کی ایک پوری چڑھانے ہے، لیکن اس میں کچھ اضافی 0s اور 1s ہے. اور یہ پتہ چلا ہے کہ جو ہم شاید کے لئے سال کے لئے حاصل کی جاچکی کر لیا ہے - DOC یا XLS یا MP3،. کی طرح فائل کی شکل، اتارنا Mp4. جو بھی فائل کی شکل ہے کہ تم اس سے واقف ہیں - کیا یہ بھی ایک فائل کی شکل کے لئے مطلب، کیونکہ دن کے آخر میں ان تمام فائلوں کی ہم صرف 0s اور 1s ہے استعمال کرتے ہیں. اور شاید ان 0s اور 1s ASCII ذریعے ABC یا طرح کی نمائندگی کرتے ہیں، لیکن دن کے اختتام پر، یہ ابھی بھی صرف 0s اور 1s. تو انسان کو صرف کبھی کبھار ایک نئی فائل کی شکل ایجاد کرنے کا فیصلہ جہاں وہ معیاری بٹس کے نمونوں اصل میں کیا مطلب ہے. اور یہاں اس صورت میں، لوگوں کو جو بٹ نقشہ فائل کی شکل کے لئے ڈیزائن کیا ، نے کہا ہے کہ ایک بٹ نقشہ فائل میں بہت پہلے بائٹ میں آفسیٹ 0 کی طرف سے، کے طور پر denoted کچھ cryptically نام متغیر کہا جاتا bfType جا رہا ہے، جس میں صرف بٹ نقشہ فائل کی قسم کے لئے کھڑا ہے، یہ کیا بٹ نقشہ فائل کی قسم ہے. آپ کو دوسری قطار ہے کہ 2 آفسیٹ، بائٹ نمبر 2 سے شاید اندازہ کر سکتے ہیں، 1s اور 0s کی ایک پیٹرن ہے کہ جو کی نمائندگی کرتا ہے ہے؟ کسی چیز کے سائز. اور وہ وہاں سے چلا جاتا ہے. تو مسئلہ 4 سیٹ میں، آپ ان چیزوں میں سے کچھ کے ذریعے چلی کریں گے. ہم نے ختم نہیں ان سب کے بارے میں دیکھ بھال کرے گا. نوٹس لیکن یہ 54 بائٹ کے ارد گرد دلچسپ حاصل کرنے کے لئے شروع ہوتا ہے: rgbtBlue، سبز اور سرخ. اگر تم نے کبھی سنا ہے مخفف RGB - سرخ، سبز، نیلے رنگ - یہ اس کے ایک حوالہ ہے کیونکہ اس سے پتہ چلتا ہے آپ اندردخش کے تمام رنگوں کو پینٹ کر سکتے ہیں سرخ اور نیلے اور سبز کے کچھ مجموعہ کے ساتھ. اور کمرے میں والدین اس حقیقت میں جلد پروجیکٹر میں سے کچھ یاد ہو سکتا ہے. ان دنوں، آپ کو صرف ایک روشن روشنی ایک لینس سے باہر آ رہا ہے، لیکن آپ واپس دن میں سرخ لینس، نیلے، لینس، اور سبز عینک تھا، اور مل کر وہ ایک سکرین کا مقصد اور ایک رنگارنگ تصویر قائم کی ہے. اور اکثر، مڈل اسکولوں اور ہائی اسکولوں ان لینس ہوگا کبھی تو تھوڑا سا ترچھا، تو آپ ڈبل یا ٹرپل تصاویر کو دیکھنے کی طرح تھے. لیکن اس کا خیال تھا. آپ کو ایک تصویر تصویر سرخ اور سبز اور نیلے رنگ کی روشنی تھی. اور یہ کہ اسی اصول کے کمپیوٹر میں استعمال کیا جاتا ہے. تو مسئلہ میں آپ کے لئے اس وقت کے چیلنجوں میں سے 4 سیٹ کچھ ہونے جا رہے ہیں. اصل میں ایک تصویر کا سائز تبدیل کرنا ہے، 0s اور 1s کے پیٹرن میں لے اعداد و شمار جو 0s اور 1s مقدار ڈھانچے میں کیا اس طرح کی نمائندگی کرتے ہیں، کر اندازہ لگا پکسلز دہرانے - ریڈ، اداس، سبز - ، اندر تاکہ جب ایک تصویر کو ابتدائی طور پر اس طرح لگتا ہے اس کے بعد بجائے اس طرح دیکھ سکتا ہے. دیگر چیلنجوں میں سے بھی ہو سکتا ہے کہ آپ کو ایک عدالتی تصویر کے حوالے کریں گے جا رہا ہے ایک ڈیجیٹل کیمرے سے ایک اصل فائل کی. اور اس کیمرے ایک بار ایک وقت، تصاویر کی ایک پوری چڑھانے تھے. مسئلہ ہم اتفاقی طور پر خارج کر دیا ہے یا تھا تصویر کسی طرح خراب ہے. بری چیزیں ڈیجیٹل کیمرے کے ساتھ ہو. اور تو ہم فوری طور پر آپ کے لئے اس کارڈ کی 0s اور 1s آف کاپی، ایک بڑی فائل میں ان سب کو بچا لیا، اور پھر ہم اس مسئلے میں آپ کو ان کے حوالے کروں گا، 4 سیٹ کریں تاکہ تم C میں ایک پروگرام ہے جس کے ساتھ ان JPEGs کی وصولی کے لئے لکھنے، مثالی طور پر کر سکتے ہیں. اور یہ کہ JPEGs بدل جاتا ہے، اگرچہ وہ ایک پیچیدہ فائل کی شکل کے کسی حد تک ہو - وہ اس کے مسکراتے ہوئے چہرے سے زیادہ پیچیدہ ہو - یہ پتہ چلتا ہے کہ ہر JPEG 0s اور 1s اسی پیٹرن کے ساتھ شروع ہوتی ہے. تو اس کا استعمال کرتے ہوئے، بالآخر، لوپ یا اسی طرح کے کے لئے ایک جبکہ لوپ یا تمام 0s اور 1s آپ کے اس عدالتی تصویر میں iterate کر سکتے ہیں، اور ہر وقت آپ کو خاص پیٹرن ہے کہ مسئلہ سیٹ کی تفصیلات میں وضاحت کی گئی ہے آپ یہاں فرض بہت زیادہ امکان کے ساتھ ہے، ایک JPEG کے آغاز کر سکتے ہیں. اور جیسے ہی کے طور پر آپ کو ایک ہی پیٹرن بائٹس کی کچھ بڑی تعداد ملے یا کلو بائٹ یا میگا بائٹ بعد، آپ یہاں فرض کر سکتے ہیں ایک دوسرے JPEG، تصویر میں پہلے ایک کے بعد لیا. آپ کے وزٹرز کا ریکارڈ رکھا کہ سب سے پہلے فائل کو پڑھنے کے بند دو، اس نئی لکھنا شروع، اور pset4 کے لئے آپ کے پروگرام کی پیداوار کے طور پر بہت سے 50 JPEGs جا رہا ہے. اور اگر یہ 50 JPEGs نہیں ہے، تو آپ کو ایک لوپ کے تھوڑا سا ہے. اگر آپ کا ایک لامحدود تعداد میں JPEGs ہے، آپ کو ایک لامتناہی لوپ ہے. تو وہ بھی بہت عام کا معاملہ ہو جائے گا. تو اس افق پر کیا ہے. ہمارے پیچھے 0 کوئز، فی میرا ای میل یہ احساس ہے کہ ہمیشہ لوگ ہیں جو دونوں خوش ہیں، غیر جانبدار اور کوئز کے ارد گرد اداس 0 وقت کی طرح. براہ مہربانی مجھ تک پہنچ سکتے ہیں، سر TF Zamyla اپنے TF، یا کیس کے ایک ہے کہ آپ کو پتہ ہے کہ اگر آپ کو بات چیت کس طرح چیزوں گئے ہیں. تو والدین کے کمرے میں متاثر کیا CS50 لائبریری ہے؟ [ہنسی] اچھا کام ہے. CS50 لائبریری کیا ہے؟ جی ہاں. >> [طالب علم] یہ کوڈ کا ایک سیٹ پہلے سے لکھے ہوئے [اشراوی] ٹھیک ہے، اچھا ہے. یہ کوڈ کا ایک سیٹ پہلے سے لکھے ہوئے کہ ہم عملے نے لکھا ہے، ہم آپ کو فراہم کی، جو کچھ عام فعالیت فراہم کرتا ہے، مجھے ایک تار کی طرح چیزیں، آپ کے وزٹرز کا ریکارڈ رکھا int - کے تمام افعال جو یہاں درج ہیں. اب شروع ہو رہا ہے، ہمیں واقعی ان کی تربیت پہیوں کو لے شروع. ہم تم سے دور ایک تار شروع کرنے جا رہے ہیں، جو اصل ڈیٹا کی قسم کے لیے جو یاد صرف ایک متبادل تھا؟ >> [ایک سے زیادہ طالب علموں] چار *. چار *. والدین کے لیے، جو شاید [کرتا ہے whooshing آواز] تھا. وہ اچھا ہے. چار * ہم سب کی سکرین پر کے طور پر ہم اپنے الفاظ سے سٹرنگ کو دور کرنے کے دیکھنا شروع کر دیں گے، کم سے کم جب یہ اصل میں کوڈ لکھنے کی ہو. اسی طرح، ہم ان کے افعال میں سے کچھ کا استعمال کرتے ہوئے زیادہ سے زیادہ روک دیں گے کیونکہ ہمارے پروگرام زیادہ بہتر حاصل کرنے کے لئے جا رہے ہیں. بجائے صرف پروگرام جو ایک فوری طور پر ٹمٹمانے والے کے ساتھ وہاں بیٹھ لکھتے ہیں، صارف کے لئے انتظار کر رہے میں کچھ ٹائپ، آپ کو دوسری جگہوں سے اپنے آدانوں کو ملے گی. مثال کے طور پر، آپ کو مقامی ہارڈ ڈرائیو پر بٹس کی سیریز سے انہیں ملے گی. تم نے انہیں مستقبل میں بجائے ایک نیٹ ورک کنکشن سے ملے گی، کچھ ویب سائٹ کہیں. تو پہلی بار کے لئے واپس اس پرت کے چھیل اور CS50 آلات ھیںچو اور یہ کہا جاتا cs50.h فائل، جو آپ کو ہے # ہفتوں کے لئے بھی شامل ہیں، لیکن اصل میں دیکھتے ہیں کہ اس کے اندر کیا ہے. نیلے رنگ میں فائل کے سب سے اوپر تبصرے کی ایک پوری چڑھانے ہے: وارنٹی معلومات اور لائسنسنگ. یہ سافٹ ویئر میں ایک عام مثال طرح کی ہے کیونکہ سافٹ ویئر کی ایک بہت ان دنوں ہے جو اوپن سورس کہا جاتا ہے، جس کا مطلب یہ ہے کہ کسی کوڈ لکھا ہے اور اسے آزادانہ طور پر دستیاب کر دیا ہے نہ صرف استعمال کرنے کے لئے چلانے لیکن اصل اور تبدیل پڑھیں اور اپنے اپنے کام میں ضم. تو وہ ہے کہ آپ کیا گیا ہے کا استعمال کرتے ہوئے، ایک بہت چھوٹی شکل میں اگرچہ اوپن سورس سافٹ ویئر،. اگر میں تبصرے کے ماضی میں ذیل میں سکرال، تاہم، ہم کچھ زیادہ واقف چیزوں کو دیکھنے کے لئے شروع کر دیں گے. نوٹس یہاں سب سے اوپر ہے کہ cs50.h فائل ہیڈر فائلوں کی ایک مکمل جھوبڈ بھی شامل ہے. ان میں سے زیادہ تر، ہم پہلے نہیں دیکھا ہے، لیکن ایک واقف ہے. ہم ان میں سے کون سا، دیکھا ہے مختصر طور پر ہی سہی، اس طرح اب تک؟ >> [طالب علم کو] سٹینڈرڈ لائبریری. جی ہاں، معیاری لائبریری. stdlib.h malloc ہے. ایک بار جب ہم متحرک میموری تقرری کے بارے میں بات کرنا شروع کر دیا، جو ہم اگلے ہفتے واپس آ کے طور پر کریں گے، ہم نے وہ فائل بھی شامل ہے کرنا شروع کر دیا ہے. یہ پتہ چلا ہے کہ bool اور سچے اور جھوٹے C فی SE میں اصل میں نہیں موجود جب تک آپ اس فائل کو یہاں شامل ہیں. ہم نے ہفتے کے لئے کیا گیا ہے stdbool.h سمیت تاکہ تم. bool، صحیح یا غلط تصور کا استعمال کر سکتے ہیں اس کے بغیر، آپ کو یہ جعلی ترتیب اور ایک int استعمال ہوگا اور منمانے فرض ہے کہ 0 باطل ہے اور 1 سچ ہے. اگر ہم مزید نیچے سکرال، یہاں ایک تار کی ہماری تعریف ہے. یہ پتہ چلتا ہے، جیسا کہ ہم نے پہلے کہا ہے، کہ واقعی جہاں یہ ستارہ ہے کوئی فرق نہیں پڑتا. آپ کی گنجائش بھی چاروں طرف سے کر سکتے ہیں. ہم اس سمسٹر ہے اس سے اس کے طور پر فروغ دینے کے بنانے کے واضح کہ سٹار قسم کے ساتھ کیا ہے، لیکن بالکل اسی طرح جیسے عام احساس اگر کچھ نہیں عام، اسے وہاں ڈال دیا ہے، لیکن فعل یہ ایک ہی بات ہے. لیکن اب اگر ہم مزید پڑھا، GetInt پر ایک نظر لے کیونکہ ہم نے کچھ اور اس سمسٹر سے پہلے یہ شاید پہلی استعمال کیا جاتا ہے. یہاں GetInt ہے. یہ کیا ہے؟ >> [طالب علم] ایک پروٹوٹائپ. >> یہ صرف ایک پروٹوٹائپ ہے. اکثر، ہم ہماری کی چوٹیوں پر prototypes ڈال دیا ہے سی فائلیں، لیکن آپ کو ہیڈر فائلوں، H فائلوں، میں prototypes بھی اس طرح رکھ سکتے ہیں تاکہ جب آپ کے بعض افعال لکھنے ہے کہ آپ کو دوسرے لوگوں کو استعمال کرنے کے لئے کے قابل بننا چاہتا ہوں، جو بالکل CS50 لائبریری کے ساتھ معاملہ ہے، تم نے نہیں صرف cs50.c طرح کچھ میں اپنے افعال پر عملدرآمد، تم نے بھی نہیں اس فائل کی سب سے اوپر دیئے گئے لیکن ایک ہیڈر فائل کے سب سے اوپر دیئے گئے prototypes رکھ دیا. پھر اس ہیڈر فائل ہے جو دوستوں اور ساتھیوں میں شامل ہیں # ان کے اپنے کوڈ میں شامل کریں. اس وقت تو آپ کو دیا ہے ان prototypes بھی شامل ہیں، مؤثر طریقے سے آپ کی فائل کے سب سے اوپر دیئے گئے، لیکن اس کی راہ کی طرف سے # میکانزم شامل ہیں، آپ کے اپنے میں جو بنیادی طور پر نقول اور pastes اس فائل. یہاں کچھ کافی تفصیلی دستاویزات ہے. ہم بہت کر لیا ہے کے لئے حاصل کی جاچکی کہ GetInt ایک int ہو جاتا ہے، لیکن اس کا بدل جاتا ہے وہاں کسی کونے مقدمات ہیں. ، کیا ہوگا اگر ایک بڑی تعداد اس طرح بہت بڑا ہے میں صارف کی قسم، quintillion ایک جو صرف ایک int کے اندر فٹ نہیں کر سکتے ہیں؟ متوقع رویہ کیا ہے؟ مثالی طور پر، یہ امکانات ہے. تو اس معاملے میں، اگر آپ نے واقعی ٹھیک پرنٹ پڑھ، آپ کہ اگر لائن پڑھا نہیں کیا جا سکتا، اس کی واپسی INT_MAX اصل میں نظر آئے گا. ہم اس کے بارے میں بات کبھی نہیں کی ہے، لیکن اس کے بڑے حروف تہجی کی بنیاد پر، یہ کیا شاید؟ [طالب علم] مسلسل ہے. >> یہ ایک مسلسل ہے. یہ کچھ خاص مسلسل ہے کہ شاید ان ہیڈر فائلوں میں سے ایک میں اعلان ہے جو فائل میں زیادہ ہے، اور INT_MAX شاید 2 تقریبا ارب طرح کچھ ہے، کہ کیا جا رہا ہے کیونکہ ہم کسی نہ کسی طرح کہ کچھ کی نشاندہی کرنے کی ضرورت ہے خیال غلط ہو گیا، ہم ہمارے اختیار میں ہاں، 4 ارب کی تعداد: -2 ارب 2 ارب پر، یا لے دے. ٹھیک ہے، کیا پروگرامنگ میں عام ہے ہے آپ کو صرف ان کی تعداد کے ایک چوری ہے، شاید 0، شاید ارب 2، شاید -2 ارب، تو آپ کو آپ کے ممکنہ اقدار کی ایک خرچ کرتے ہیں تاکہ تم دنیا کا ارتکاب کر سکتے ہیں کہ اگر کچھ غلط ہو جاتا ہے، میں اس سپر بڑی قیمت واپس آ جائیں گے. لیکن آپ صارف 234 کی طرح خفیہ کچھ ٹائپ کرنا چاہتے ہیں نہیں ...، ایک بہت بڑی تعداد ہے. تم نے یہ مسلسل بجائے عام. تو سچ میں، اگر آپ مقعد گزشتہ چند ہفتوں رہے تھے، کسی بھی وقت نے آپ کو بلایا GetInt ، آپ کو ایک سے جانچ پڑتال اگر حالت INT_MAX میں صارف کی قسم کیا یا خاص طور پر GetInt واپسی INT_MAX کیا، کیونکہ اگر اس نے، کہ اصل کا مطلب ہے کہ وہ اس ٹائپ نہیں کیا. اس معاملے میں کچھ غلط ہو گیا. تو یہ ہے جو عام طور پر ایک پرہری کی قیمت، جس میں صرف خصوصی کا مطلب ہے کے طور پر جانا جاتا ہے. اب چلو سی فائل میں تبدیل کریں. C فائل آلے میں کچھ وقت کے لئے موجود ہے. اور اصل میں، آلات اس سے پہلے مرتب، میں آپ کے لئے اس چیز ہم نے اعتراض کوڈ قرار دیا ہے لیکن یہ صرف آپ کو کوئی فرق نہیں پڑتا وہ کہاں ہے کیونکہ نظام جانتا ہے اس صورت میں وہ کہاں ہے: آلات. چلو نیچے سکرال کریں اور دیکھو کس طرح GetInt گیا ہے کام کر اس وقت GetInt. یہاں ہم پہلے سے اسی طرح کی رائے ہے. کے وزٹرز کا ریکارڈ رکھا جائے گا. میرے صرف کوڈ حصے میں زوم. اور کیا ہم GetInt کے لئے مندرجہ ذیل ہے. یہ کوئی ان پٹ نہیں لیتا ہے. یہ ایک int واپس، جبکہ (صحیح)، تو ہم نے جان بوجھ کر لامحدود لوپ ہے، لیکن شاید ہم اس سے باہر کسی نہ کسی طرح توڑ یا اس کے اندر سے واپس کریں گے. چلو، یہ کس طرح کام کرتا ہے کو دیکھنے کے. ہم لوپ کے اندر اس کی پہلی سطر میں GetString کا استعمال کرتے ہوئے، 166 لگتے ہیں. یہ اچھا عمل ہے کیونکہ GetString کن حالات کے تحت واپس آ سکتا ہے خصوصی مطلوبہ الفاظ نل؟ >> [طالب علم] اگر کچھ غلط ہو جاتا ہے. اگر کچھ غلط ہو جاتا ہے. اور کیا ہوا جب تم GetString ایسا کچھ کہہ سکتے ہیں؟ جی ہاں. >> [طالب علم] Malloc یہ ints دینے میں ناکام ہے. جی ہاں. شاید malloc ناکام ہو جاتا ہے. ہڈ کے نیچے کہیں، GetString malloc، جو میموری مختص بلا رہا ہے، جو کمپیوٹر کی دکان کی مدد سے حروف کے تمام کہ بورڈ میں صارف کی اقسام. فرض اور صارف کو مفت وقت کے ایک بہت ساری تھا اور مثال کے طور پر ٹائپ،، میں کمپیوٹر سے زیادہ حروف سے 2 ارب حروف بھی RAM ہے. GetString آپ کو مطلع کرنا قابل ہو جائے کرنے کے لئے ہے ہے. یہاں تک کہ اگر یہ ایک سپر، سپر، غیر معمولی کونے معاملہ ہے، یہ کسی نہ کسی طرح اس کو ہینڈل کرنے کے قابل ہے، اور اس GetString، اگر ہم واپس آ گئے کیا اور اس کے ساتھ ساتھ اس کی دستاویزات کا بھی مطالعہ، حقیقت یہ واپسی کے نل میں ہے. تو اب اگر GetString نل واپس لوٹنے کی طرف سے ناکام ہو جاتا ہے، GetInt INT_MAX واپس لوٹنے کی طرف سے ناکام ہو رہا ہے صرف ایک پرہری کے طور پر. یہ صرف انسانی کنونشن ہیں. ایک ہی راستہ ہے جس سے آپ جانتے ہیں کہ یہ معاملہ ہے دستاویزات پڑھنے کی طرف سے ہے. چلو جہاں int اصل میں ملا ہے ذیل میں سکرال. اگر میں نیچے سکرال مزید تھوڑی، 170 لائن میں، ہم ان لائنوں سے اوپر ایک تبصرہ ہے. ہم نے 172 میں ایک int، ن اور ایک چار، C، اور پھر اس نئی تقریب کا اعلان جو تم میں سے بعض sscanf، اس سے پہلے کہ بھر میں ٹھوکر کھائی ہے. یہ سٹرنگ scanf کے لئے کھڑا ہے. دوسرے الفاظ میں، مجھے ایک تار دے اور میں اسے دلچسپی کے کے بارے میں معلومات کے ٹکڑے کے لئے اسکین کرے گا. اس کا کیا مطلب ہے؟ مان لیں کہ میں نے بورڈ میں لفظی، 123 ٹائپ کریں اور پھر مارا درج کریں. 123 کے اعداد و شمار کی قسم جب GetString کی طرف سے واپس کیا ہے؟ >> [طالب علم] سلک. یہ ظاہر ہے ایک تار ہے، ٹھیک ہے؟ میں نے ایک تار ہے. تو 123 واقعی ہے، اقتباس unquote، اس کے آخر میں \ 0 کے ساتھ 123. یہ ایک int نہیں ہے. یہ ایک نمبر نہیں ہے. یہ ایک نمبر کی طرح لگتا ہے لیکن یہ اصل میں نہیں ہے. تو کیا GetInt کرنا ہے؟ 123 0 \ - - اور کسی نہ کسی طرح ایک حقیقی عددی قبول یہ کہ بائیں سے دائیں سٹرنگ کو اسکین ہے. آپ اندازہ لگا ایسا کیسے کر سکتا ہے. اگر آپ pset2 واپس لگتا ہے، آپ کو شاید سیزر کے ساتھ تھوڑا آرام دہ اور پرسکون ہے یا Vigenere، تم ایک تار پر iterate کر سکتے ہیں، آپ کو ints حروف تبدیل کر سکتے ہیں. لیکن heck، یہ کام کی ایک پوری بہت ہے. sscanf طرح ایک تقریب ہے جو آپ کے لیے وہ اس کی کال کیوں نہیں؟ تو sscanf ایک دلیل کی توقع - اس معاملے میں لائن قرار دیا ہے، جس میں ایک تار ہے. اس کے بعد آپ کی قیمت درج کرنے میں درج کرتے ہیں، بہت ہی printf پر، جو تم نے اس جملے کو میں دیکھنے کی امید ہے. اور جو میں یہاں کہہ رہا ہوں وہ یہ ہے کہ میں ایک دشملو تعداد اور شاید ایک کردار کو دیکھنے کے لئے کی امید ہے. اور ہم دیکھتے ہیں کیوں یہ صرف ایک لمحے میں معاملہ ہے گے. اور یہ پتہ چلا ہے کہ یہ سنکیتن اب چیزیں یاد تازہ ہے ہم کے بارے میں بات کرنا شروع کر دیا صرف ایک ہفتے پہلے. کیا ہے (ن) اور & C ہمارے لئے یہاں کیا کر رہے ہو؟ >> [] (ن) کا پتہ اور سی کے ایڈریس پر طالب علم. جی ہاں. یہ مجھے دے سی کے (ن) اور پتہ کا پتہ ہے. کہ کیوں ضروری ہے؟ آپ کو معلوم ہے کہ آپ سی افعال کے ساتھ ایک قدر یا کوئی قیمت نہیں ہمیشہ واپس آ سکتے ہیں. آپ کو ایک int، سٹرنگ، ناو، چار جو بھی ہو، یا تم باطل کو واپس جا سکتے ہیں واپس کر سکتے ہیں، لیکن آپ صرف ایک بات زیادہ سے زیادہ واپس جا سکتے ہیں. لیکن یہاں ہم sscanf آپ کے وزٹرز کا ریکارڈ رکھا شاید ایک int، ایک دشملو تعداد پر واپس کرنا چاہتے ہیں، اور بھی ایک، چار، اور میں ایک لمحے میں کیوں چار سمجھا دونگا. آپ کو مؤثر طریقے سے sscanf دو چیزیں واپس کرنا چاہتے ہیں، لیکن اس C. میں صرف ممکن نہیں آپ دو پتوں میں گزرنے والے طرف سے یہ کام کر سکتے ہیں ، کیونکہ جیسے ہی کے طور پر آپ کو ایک تقریب دو پتوں کے حوالے کیا ہے کہ ان کے ساتھ تقریب میں کیا کر سکتے ہیں؟ >> [طالب علم] ان پتوں پر لکھیں. یہ ان پتوں پر لکھ سکتے ہیں. آپ کو سٹار آپریشن کا استعمال کریں گے اور وہاں ان پتوں میں سے ہر ایک میں جاؤ، کر سکتے ہیں. یہ متغیر کی اقدار کو تبدیل کرنے کے لئے طرح پیچھے کے دروازے کے اس نظام کی ہے لیکن بہت عام ہے اس صورت میں، دو - صرف ایک جگہ سے. اب محسوس میں == 1 کے لئے جانچ پڑتال اور پھر رہا ہوں N واپس لوٹنے اگر حقیقت میں ہے کہ، صحیح اندازہ. تو کیا ہو رہا ہے؟ اور تکنیکی طور پر، یہ ہے کہ یہ سب ہم واقعی GetInt میں ہونے چاہتے ہیں ہے. 123 اقتباس unquote - ہم سے بات کرنے کے لئے تجزیہ کرنا چاہتے ہیں، ہم سٹرنگ کو پڑھنے کے لئے چاہتے ہیں - اور اگر یہ لگتا ہے کہ وہاں ایک تعداد، جو ہم sscanf کہہ کر رہے ہیں اس متغیر (ن) میرے لئے - 123 - اس نمبر لگا. تو کیوں تو میں اصل میں یہ کیا کے ساتھ ہے؟ sscanf کے کردار کی اور کہا کہ آپ کو ایک کردار بھی یہاں ہو سکتا ہے کیا ہے؟ [اشراوی طالب علم کے جواب] >> ایک اعشاریہ اصل میں کام کر سکتے ہیں. آو منعقد ہے کہ ایک لمحے کے لئے سوچا ہے. اور کیا؟ [طالب علم] یہ نل ہو سکتا ہے. >> اچھا خیال ہے. یہ لوڈ، اتارنا null کردار ہو سکتا ہے. یہ اصل میں اس معاملے میں نہیں ہے. جی ہاں. >> [طالب علم] ASCII. ASCII. یا آپ کے وزٹرز کا ریکارڈ رکھا مزید بھی عام ہے. ٪ وہاں سی غلطی کی چیکنگ کے لئے ہے. ہم وہاں نہیں کرنا چاہتے ہیں، تعداد کے بعد ایک کردار ہو، لیکن جو مجھ سے کیا کرنے کی اجازت دیتا ہے ہے مندرجہ ذیل ہے. یہ پتہ چلا ہے کہ sscanf، اس مثال میں (ن) اور سی اقدار یہاں ذخیرہ کرنے کے علاوہ، کیا یہ بھی ہے کہ یہ متغیر کی تعداد واپس آئے تو وہ اندر اقدار ڈال اگر ایسا ہے تو آپ کو 123 میں صرف ٹائپ، تو صرف ایک فیصد D میچ ہو رہا ہے، اور صرف (ن) نے 123 کی طرح کی قیمت کے ساتھ محفوظ ہو جاتا ہے، اور کچھ نہیں سی میں ڈال دیا جاتا ہے. C ردی کی ٹوکری کی قیمت رہتا ہے، تو بات - وجہ سے ردی کی ٹوکری میں یہ کسی قدر کیا گیا ہے کبھی نہیں initialized. تو اس صورت میں، sscanf 1 واپس کیونکہ میں ان اشارہ کی 1 آبادی، جو عظیم کیس میں، میں نے ایک int ہے تو میں اوپر مفت میموری آزاد کہ GetString اصل میں مختص کی، اور پھر میں (ن) واپس، اور اگر تم نے کبھی حیران کہ جہاں دوبارہ کوشش کریں کے بیان سے آتا ہے، ابھی یہاں سے آتا ہے. اگر ایسا ہے تو، اس کے برعکس کی طرف سے، میں 123foo میں ٹائپ - متن کے صرف کچھ بے ترتیب ترتیب - sscanf تعداد، تعداد، نمبر، F دیکھنے کے لئے کی جا رہی ہے، اور (ن) میں 123 ڈال جا رہا ہے، سی ایف اور ڈال تو 2 واپس جا رہا ہے. تو ہم ہیں، صرف کے sscanf رویے، ایک بہت ہی آسان طریقے کی بنیادی تعریف کا استعمال کرتے ہوئے - ٹھیک ہے، پہلی نظر میں دن کافی سادہ طریقہ کار کے آخر میں پیچیدہ - کہنے کی ایک int ہے اور اگر ایسا ہے تو ہے، کہ صرف ایک چیز جو میں نے محسوس کیا ہے؟ اور یہاں وائٹ جان بوجھ ہے. اگر آپ sscanf کے لئے دستاویز کو پڑھا، یہ آپ کو بتاتا ہے کہ اگر آپ وائٹ کا ایک ٹکڑا شامل ہیں شروع یا آخر میں، sscanf بھی کسی بھی وجہ سے صارف کی اجازت، گا، وقفہ بار 123 مارا اور جائز ہو جائے گا. آپ صارف میں چللانا نہیں صرف اس لئے کہ انہوں نے اسپیس بار کو مارا شروع یا آخر میں، جو صرف تھوڑا زیادہ صارف دوست ہے. کوئی تو سوالات GetInt پر؟ جی ہاں. >> [طالب علم] اگر تم چار میں ڈال؟ اچھا سوال ہے. اگر آپ نے ابھی F کی طرح ایک چار میں ٹائپ اور کبھی 123 ٹائپ کے بغیر درج کریں مارا؟ کیا آپ کے خیال میں کوڈ کی اس لائن کے رویے تو ہو گا؟ [اشراوی طالب علم کے جواب] جی ہاں، تو sscanf وہ بھی احاطہ کیونکہ اس صورت میں، یہ جا ن یا سی کو بھرنے کے لئے نہیں کر سکتے ہیں. بجائے 0 واپس، جس میں کیس میں بھی اس منظر نامے کو پکڑنے رہا ہوں جا رہا ہے کیونکہ متوقع قدر میں چاہتا ہوں 1 ہے. میں صرف ایک ہی کرنا چاہتے ہیں اور صرف ایک ہی چیز بھر. اچھا سوال ہے. دیگر؟ ٹھیک ہے. نہیں چلو یہاں کے افعال میں سے سب سے گزرنا لیکن ایک ہے کہ باقی دلچسپی کے شاید لگتا ہے GetString ہے کیونکہ اس سے پتہ چلتا ہے کہ GetDouble GetFloat، GetInt،، GetLongLong تمام پنٹ ان GetString فعالیت کی ایک بہت ہے. تو وہ یہاں کس طرح لاگو کیا جاتا ہے پر ایک نظر لے. یہ ایک تھوڑا پیچیدہ لگتی ہے، لیکن یہ ایک ہی بنیادی اصولوں کا استعمال کرتا ہے کہ ہم نے گزشتہ ہفتے کے بارے میں بات کرنا شروع کر دیا. GetString میں، جو باطل کے مطابق کوئی دلیل کو یہاں سے لیتا ہے اور یہ ایک تار واپس، میں بظاہر نامی بفر سٹرنگ اعلان کر رہا ہوں. میں واقعی میں نہیں ہے کہ وہ کیا ابھی تک کے لئے استعمال کیا جا رہا ہے معلوم، لیکن ہم دیکھ لیں گے. ایسا لگتا ہے کی طرح صلاحیت 0 ڈیفالٹ کی طرف سے ہے. نہیں یقین ہے کہاں، یہ نہیں ہو رہا ہے، یقین ہے کہ کیا (ن) کے لئے استعمال کیا ابھی تک جا رہا ہے لیکن اب یہ تھوڑا زیادہ دلچسپ ہوتا جا رہا ہے. 243 لائن میں، ہم ایک int ہے، سی کا اعلان. اس طرح کی ایک پاگل تفصیل کے ہے. ایک چار 8 بٹس ہے، اور 8 بٹس کس طرح مختلف اقدار کو محفوظ کر سکتے ہیں؟ >> [طالب علم] 256. >> 256. مسئلہ یہ ہے کہ اگر آپ کو 256 مختلف ASCII حروف، جو وہاں ہیں کرنا چاہتے ہیں اگر آپ کو واپس میں لگتا ہے کہ - اور یہ حفظ کچھ نہیں ہے. لیکن اگر آپ کہ بڑا ASCII چارٹ واپس لگتا ہے ہم ہفتے پہلے تھا، اس صورت میں 128 یا 256 ASCII حروف تھے. ہم نے 0s اور 1s اپ کے تمام نمونوں کا استعمال کیا. یہ ایک مسئلہ ہے اگر آپ میں ایک خامی کا پتہ لگانے کے قابل بننا چاہتا ہوں ، اگر آپ کے پاس پہلے سے ہی آپ کے لئے 256 حروف اقدار کا استعمال کرتے ہوئے کر رہے ہیں کیونکہ تم آگے واقعی نہیں تھا کی منصوبہ بندی کی وجہ سے اب آپ کو کہنے کی کوئی راستہ نہیں ہے، یہ ایک legit کردار نہیں ہے، کچھ غلط پیغام ہے. تو دنیا کیا ہے یہ ہے کہ وہ اگلے سب سے بڑی قدر، ایک int کی طرح کچھ کا استعمال کریں، تاکہ آپ کو 4 ارب ممکن اقدار کے لئے ایک پاگل تعداد میں بٹس، 32 ہے، تاکہ آپ کو صرف ان میں سے 257 بنیادی طور پر استعمال کرتے ہوئے ختم کر سکتے ہیں، 1 جن میں سے ایک غلطی کے طور پر کچھ خاص مطلب ہے. تو یہ کس طرح کام کرتا ہے کو دیکھنے کے. 246 لائن میں، میں نے اس بڑی دیر لوپ کہ fgetc بلا رہا ہے، F معنی فائل، تو getc، اور پھر stdin. یہ پتہ چلا ہے یہ تو صرف اور کہا کہ بورڈ سے ان پٹ پڑھ کے زیادہ عین مطابق طریقہ ہے. معیاری ان پٹ کا مطلب ہے، کی بورڈ، معیاری پیداوار کی سکرین کا مطلب ہے کہ، اور معیاری غلطی، جو ہم نے pset4 میں نظر آئے گا، اسکرین کا مطلب لیکن تاکہ سکرین کے ایک خاص حصہ یہ اصل پیداوار کے ساتھ conflated نہیں کہ آپ پرنٹ کا ارادہ کیا ہے. لیکن مستقبل میں اس کے بارے میں مزید. تو fgetc صرف کا مطلب ہے کہ کی بورڈ سے ایک کردار کو پڑھیں اور اس کی دکان کہاں ہے؟ سی سٹور. تو میں صرف کچھ بولین conjunctions استعمال کر رہا ہوں - اور پھر چیک کرنے کے لیے - چیک کرنے کے لیے کہ یہ برابر نہیں ہے - کریں \ n، تو صارف درج کریں مارا ہے، ہم اس وقت کو روکنے کے لئے چاہتے ہیں، ، اور ہم بھی خصوصی مسلسل مسل اختتام کے لئے چیک کرنے کے لیے چاہتے ہیں - لوپ کے ختم جو اگر تم جانتے ہو یا اندازہ ہے، جو اس کے لئے کیا مطلب ہوتا ہے؟ فائل کا >> [طالب علم] اختتام. >> اختتام فائل کا. یہ کس قسم کی ہے nonsensical ہے، کیونکہ اگر میں کی بورڈ میں ٹائپ کر رہا ہوں واقعی اس میں شامل نہیں فائل، لیکن کلی کا مطلب تھا مدت کے یہ صرف ترتیب ہے انسانی انگلیوں سے کہ اور کچھ نہیں آ رہا ہے. مسل اختتام - فائل کے آخر میں. کے طور پر ایک طرف، اگر تم نے کبھی اپنے کی بورڈ میں کنٹرول D ہے مارا ہے، کہ تم ابھی تک نہیں ہوگا - آپ کو کنٹرول C مارا ہے - کنٹرول D نامی اس خاص مسل اختتام مسلسل بھیجتا ہے. تو اب ہم صرف کچھ متحرک میموری مختص کرنے کا ہے. تو اگر (ن + 1> صلاحیت). اب میں (ن) کی وضاحت کریں گے. N کتنے بائٹس بفر میں فی الحال ہے، سٹرنگ ہے کہ آپ فی الحال صارف سے کر رہے ہیں کی تعمیر. اگر آپ کو آپ کے بفر میں زیادہ حروف سے آپ کو بفر میں صلاحیت ہے، intuitively پھر ہم کیا کرنے کی ضرورت ہے زیادہ صلاحیت مختص ہے. تو کیا میں یہاں ریاضی میں سے کچھ ملائی کرنا اور یہاں صرف اس تقریب پر توجہ مرکوز کی جا رہی ہوں. کیا تم جانتے ہو malloc ہے یا کم از کم عام طور پر واقف ہیں. ایک اندازہ کیا realloc کرتا ہے لے لو. >> [طالب علم] میموری جوڑتا ہے. یہ کافی میموری نہیں ہے انہوں نے مزید کہا. یہ مندرجہ ذیل میموری reallocates. اگر پھر بھی آپ اس میموری کی زیادہ دینے کے لئے تار کے آخر میں کمرے سے یہ اصل میں آپ کو دیتا ہے، تو آپ اس اضافی میموری ملے گی. تو آپ کو سٹرنگ حروف پیچھے رکھ واپس، واپس واپس رکھ سکتے ہیں. لیکن اگر ایسی بات نہیں ہے کیونکہ آپ بہت دیر سے انتظار کر رہے تھے اور بے ترتیب کچھ یاد میں وہاں plopped کر لی لیکن یہاں نیچے اضافی میموری ہے، ٹھیک ہے. Realloc آپ کے لئے تمام بھاری لفٹنگ کرنے والی ہے، STRING نے آپ کو پڑھا اس طرح یہاں سے دور ہے کو منتقل، اسے وہاں نیچے رکھ اور پھر آپ کے پاس اس وقت کچھ اور رن وے دے. تو ہاتھ کی لہر کے ساتھ، مجھے کا کہنا ہے کہ کہ GetString کیا کر رہا ہے ہے، یہ ایک چھوٹی سی بفر، شاید ایک کردار کے ساتھ شروع ہو رہا ہے، اور اگر دو حروف میں صارف اقسام GetString realloc فون ختم ہو جاتا ہے اور کہتا ہے ایک کردار کافی نہیں تھا، مجھے دو حروف کرو. پھر اگر آپ لوپ کی منطق کے ذریعے پڑھا، یہ کہنا جا رہا ہے 3 حروف میں ٹائپ صارف، مجھے اب 2 نہیں بلکہ 4 حروف دے، تو آپ کے وزٹرز کا ریکارڈ رکھا 8 دے، تو مجھے 16 اور 32 دے. حقیقت یہ ہے کہ میں نے صلاحیت کو دگنا کرنے ہر بار رہا ہوں کا مطلب یہ ہے کہ بفر آہستہ آہستہ اضافہ نہیں ہے، یہ انتہائی تیز رفتار اضافہ ہو رہا ہے. اور اس کا فائدہ کیا ہو سکتا ہے؟ میں بفر کے سائز کو دگنا کرنے کیوں کر رہا ہوں اگرچہ صارف کو ایک کی بورڈ سے اضافی کردار کی ضرورت ہو سکتی ہے؟ [اشراوی طالب علم کے جواب] >> یہ کیا ہے؟ >> [طالب علم] آپ کے طور پر اکثر بڑھ نہیں ہے. بالکل. آپ کے طور پر اکثر بڑھ نہیں ہے. اور یہ آپ کی قسم ہے آپ کے دانو یہاں باڑ لگانا رہے ہیں، خیال کیا جا رہا ہے کہ آپ نے بہت realloc فون نہیں کرنا چاہتا کیونکہ یہ سست ہو جاتا ہے. کسی بھی وقت آپ میموری کے لئے آپریٹنگ سسٹم سے دعا گو ہیں، کے طور پر آپ مستقبل میں مسئلہ سیٹ میں جلد ہی نظر آئے گا، اس میں کچھ وقت لگ جاتا ہے. تو وقت کی اس رقم کو کم سے کم کرنا، یہاں تک کہ اگر آپ کچھ جگہ برباد کر رہے ہیں، ایک اچھی بات ہو جاتا ہے. لیکن اگر ہم یہاں GetString کے آخری حصہ کے ذریعے پڑھا - اور پھر ہر ایک لائن یہاں سمجھنے اتنی اہم نہیں ہے آج - دیکھیں گے کہ یہ آخر میں مطالبہ malloc پھر اور کئی بائٹس کے طور پر بالکل مختص سٹرنگ کے لئے ضرورت ہے اور پھر مفت ضرورت سے زیادہ بڑے بفر پر کال کر کے دور پھینک دے اگر یہ واقعی بھی کئی بار دوہرا کر لی. تو مختصر میں، اس طرح GetString کیا گیا ہے اس وقت کام کر. یہ سب ایک وقت میں ایک کردار بار بار بار دوبارہ پڑھیں، اور ہر بار یہ کچھ اضافی میموری کی ضرورت ہے، یہ اس کے لئے عملیاتی نظام پوچھتا realloc فون کر کے. کوئی سوال؟ ٹھیک ہے. ایک حملہ ہے. اب جب کہ ہم اشارہ سمجھتے ہیں یا کم از کم اشارہ کے ساتھ تیزی سے واقف ہیں، ہم غور کریں کہ کس طرح پوری دنیا گر شروع ہوتا ہے اگر آپ معاندانہ صارفین کے خلاف کافی نہیں ہے کا دفاع، لوگ ہیں جو آپ کے سسٹم میں ہیک کرنے کی کوشش کر رہے ہیں، لوگ ہیں جو کچھ رجسٹریشن کوڈ circumventing کی طرف سے آپ کے سافٹ ویئر کی چوری کی کوشش کر رہے ہیں کہ وہ اندر ٹائپ کریں ورنہ ہو سکتا ہے اس مثال میں نظر یہاں لے لو، جس میں صرف C کوڈ ہے کہ نیچے دیے گئے ایک اہم تقریب ہے ہے جو ایک تقریب FOO کہتے ہیں. اور کیا اس FOO گزر رہا ہے؟ [طالب علم] ایک دلیل ہے. >> [Malan] ایک دلیل ہے. تو argv [1] جس کا پہلا لفظ کا مطلب ہے کہ صارف کمانڈ لائن میں ٹائپ a.out یا جو کچھ بھی کے بعد پروگرام کا کہا جاتا ہے. تو FOO سب سے اوپر حروف * میں لیتا ہے. لیکن چار * صرف کیا ہے؟ >> [طالب علم] ایک تار. [Malan] ایک سٹرنگ، تو کوئی نئی بات نہیں ہے. وہ سٹرنگ منمانے جا رہا ہے بار ملاقات کی. اس لائن میں، چار سی [12]، انگریزی نیم تکنیکی طرح کی میں، کیا یہ لائن کر رہی ہے؟ [طالب علم] ایک کی صف - >> کی لڑی ہے؟ >> [طالب علم] تصوراتی، بہترین. >> تصوراتی، بہترین. کے وزٹرز کا ریکارڈ رکھا جائے گا. میرے 12 حروف کی ایک سرنی دیجئے. تو ہم یہ ایک بفر کو فون کر سکتے ہیں. تکنیکی C کہتے ہیں، لیکن پروگرامنگ میں ایک بفر کی جگہ کا ایک گروپ کا مطلب ہے کہ ہے کہ آپ کو کچھ چیزیں اندر رکھ سکتے ہیں پھر آخر میں، memcpy ہم پہلے استعمال نہیں کی ہے، لیکن آپ کو شاید اندازہ لگا سکتے ہیں کیا اس سے فرق پڑتا ہے. یہ میموری نقل کرتا ہے. اس کا کیا کرنا ہے؟ یہ بظاہر بار نقل کرتا ہے، اس کی ان پٹ، C میں لیکن صرف اس بار کی لمبائی. لیکن یہاں ایک بگ ہے. >> [طالب علم] آپ کو sizeof کردار کی ضرورت ہے. ٹھیک ہے. >> تکنیکی طور پر، ہم strlen واقعی (بار) * sizeof (چار)) کرنا چاہیے یہ درست ہے. لیکن بدترین صورت میں یہاں دو، اس that's کو فرض - ٹھیک ہے. اس کے بعد دو کیڑے ہے. تو sizeof (چار))؛ چلو، یہ تھوڑا وسیع بنانے کے. تو اب وہاں ابھی بھی ایک مسئلے جو کیا ہے؟ >> [اشراوی طالب علم کے جواب] کس کے لئے چیک کریں؟ >> [طالب علم] نل کے لئے چیک کریں. ہم عام طور پر نل کے لئے ہونا چاہئے جانچ پڑتال کی وجہ سے بری چیزیں ہو آپ کا پوائنٹر نل جب ہے کیونکہ آپ وہاں جا سکتا ہے، اور تم نے کبھی نہیں ہونا چاہئے ستارہ آپریٹر کے ساتھ محولہ لقب ضبطی کی طرف سے اتارنا null جا. تو یہ اچھی بات ہے. اور کیا ہم کر رہے ہیں؟ منطقی طور پر، اس میں ایک دوش بھی یہاں ہے. [طالب علم] اگر argc> = 2 ہے چیک کریں. تو چیک کرنے کے لیے اگر argc> = 2 ہے. ٹھیک ہے تو، اس پروگرام میں تین کیڑے یہاں ہے. اب ہم جانچ پڑتال اگر صارف اصل میں argv میں کچھ بھی میں ٹائپ کر رہے ہیں. [1] اچھی بات ہے. تو تیسرا بگ ہے؟ جی ہاں. >> [طالب علم] C کافی بڑا نہیں ہو سکتا ہے. اچھی بات ہے. ہم نے ایک منظر نامے کی جانچ پڑتال. ہم لپیٹ جانچ پڑتال میں مزید میموری سے بار کی لمبائی کی حد سے تجاوز کرے گا نہیں کاپی. لہذا اگر سٹرنگ میں ٹائپ صارف کو 10 حروف طویل ہے، یہ کہہ صرف 10 حروف نقل ہے. اور یہ ٹھیک ہے. لیکن کیا اگر صارف 20 حروف کی ایک لفظ کی طرح فوری طور پر میں ایک لفظ میں ٹائپ ہے؟ اس بار سے کیا میں 20 حروف کاپی کہہ رہا ہے؟ C، دوسری صورت میں ہمارے بفر کے طور پر جانا جاتا ہے، جس کا مطلب ہے کہ آپ صرف ڈیٹا لکھا 8 بائٹ مقامات میں کہا گیا ہے کہ تم خود نہیں، اور آپ کو احساس ہے کہ تم انہیں کبھی نہیں مختص میں ان کی ہی نہیں ہے. تو یہ ہے جو عام طور پر بفر اتپرواہ حملے یا بفر overrun حملے کے طور پر جانا جاتا ہے. اور اس لحاظ سے ایک حملہ ہے کہ اگر صارف یا پروگرام ہے جو آپ کے تقریب کو بلا رہا ہے ہے یہ کر رہی maliciously، جو اصل میں اگلے ہوتا ہے اصل میں بہت برا ہو سکتا ہے. تو اس تصویر پر ایک نظر یہاں لے. میموری کی یہ تصویر آپ کے اسٹیک کی نمائندگی کرتا ہے. کو یاد ہوگا کہ ہر وقت آپ کو ایک تقریب کہتے ہیں تو آپ اسٹیک پر اس چھوٹے سے فریم اور پھر ایک اور پھر دوسرے اور دوسرے. اور اس طرح اب تک، ہم صرف اس قسم کی ہے abstracted ان rectangles کے طور پر یا تو بورڈ پر یا سکرین پر یہاں. لیکن، اگر ہم ان rectangles میں سے ایک، جب تم نے ایک تقریب FOO فون پر میں زوم یہ پتہ چلا ہے کہ اس فریم کے اسٹیک کے اندر اس مستطیل میں زیادہ ہے سے صرف X اور Y اور A اور B، جیسا کہ ہم سویپ کے بارے میں بات کر رہا تھا. یہ پتہ چلا ہے کہ نچلے درجے میں کچھ تفصیلات ہے، ان کے درمیان واپسی پتہ ہے. اہم تو یہ پتہ چلتا ہے جب مرکزی FOO مطالبہ، FOO کو مطلع کرنا ہے اہم ایڈریس کے کمپیوٹر کی میموری میں ہے ورنہ کیونکہ جلد ہی FOO کے طور پر اس صورت میں یہاں کے طور پر قتل کیا جاتا ہے، ایک بار آپ FOO کے اختتام پر اس بند گھوبگھرالی تسمہ تک پہنچنے، کس طرح heck FOO پتہ ہے جہاں پروگرام کا کنٹرول کرنے کے لئے سمجھا جاتا ہے ہے؟ یہ پتہ چلا ہے کہ اس سوال کا جواب یہ لال مستطیل میں ہے. یہ ایک پوائنٹر کی نمائندگی کرتا ہے، اور یہ کمپیوٹر پر عارضی طور پر ذخیرہ کرنے نام نہاد اسٹیک کا اہم پتہ تاکہ جلد ہی FOO کے طور پر قتل کیا جاتا ہے، کمپیوٹر کہاں اور اہم کیا لائن پر واپس جانا جانتا ہے. محفوظ شدہ فریم یہ پوائنٹر اس سے اسی طرح سے متعلق ہے. چار * یہاں بار کیا کی نمائندگی کرتا ہے؟ اب یہ نیلی طبقہ یہاں FOO فریم ہے. بار کیا ہے؟ بار صرف FOO تقریب پر دلیل ہے. تو اب ہم واقف تصویر کی طرح میں واپس آ گئے ہیں. اسکرین پر مزید چیزیں اور مزید خلفشار ہے، لیکن یہ ہلکے نیلے رنگ کے ٹکڑے صرف یہ ہے کہ ہم کیا گیا ہے چاکبورڈ پر ڈرائنگ سویپ کی طرح کسی چیز کے لئے. یہ FOO کے لئے فریم ہے. اور اس میں صرف ایک چیز ابھی بار ہے، جو اس پیرامیٹر ہے. لیکن اسٹیک میں اور کیا اس کوڈ کے مطابق ہونا چاہئے؟ [طالب علم] چار ج [12]. >> [Malan] چار ج [12]. ہم نے میموری کا 12 چوکوں نامی سی متغیر مختص بھی نظر آنا چاہئے، اور یقینا ہم نے سکرین پر ہے. سب سے اوپر ہے وہاں C [0]، اور پھر اس خاکہ کے مصنف تھا چوکوں کے تمام ڈرائنگ پریشان نہیں، لیکن یقینا ہیں 12 کیونکہ اگر آپ نیچے دائیں طرف دیکھتے ہیں، سی [11] اگر آپ 0 سے اعتماد 12th ایسے بائٹ ہے. لیکن یہاں مسئلہ ہے. کس سمت میں سی بڑھتی جا رہی ہے؟ ترتیب دیں کے نیچے سب سے اوپر اگر یہ سب سے اوپر شروع ہوتا ہے اور نیچے اگنے. یہ دیکھو، جیسا کہ ہم نے خود کو زیادہ رن وے کو چھوڑ دیا ہے یہاں بالکل نہیں ہے. ہم کی طرح ایک کونے میں خود پینٹ ہے، اور یہ کہ سی [11]، بار، جو محفوظ شدہ فریم پوائنٹر کے خلاف ٹھیک ہے کے خلاف ٹھیک ہے جو واپس ایڈریس کے خلاف ٹھیک ہے. کوئی کمرہ ہے. تو کیا مطلب ہے تو اگر آپ کو نقصان پہنچانا اور آپ کو ایک 12 بائٹ بفر میں 20 بائٹس پڑھنے کی کوشش کرتے ہیں؟ ان 8 اضافی بائٹس کہاں جا رہے ہیں؟ >> [طالب علم] کے اندر - باقی سب کے اندر، جن میں سے بعض انتہائی اہم ہے. اور سب سے اہم بات ہے، ممکنہ طور پر، سرخ باکس وہاں ہے، واپس ایڈریس، وجہ سے لگتا ہے کہ آپ کو یا تو غلطی سے یا adversarially ان 4 سابقہ ​​ادلیکھت، کہ نہ صرف ردی کی ٹوکری کے ساتھ لیکن ایک بڑی تعداد کے ساتھ پوائنٹر پتہ، یاد میں ایک حقیقی ایڈریس کی نمائندگی ہوتا ہے. کیا مطلب ہے، منطقی طور پر؟ >> [طالب علم] فنکشن ایک مختلف جگہ پر واپس جا رہا ہے. بالکل. گھوبگھرالی منحنی خطوط وحدانی کہ FOO کی واپسی اور ہٹ جب پروگرام کارروائی جا رہا ہے مرکزی واپس نہیں، یہ اس سرخ باکس میں جو کچھ بھی پتہ ہے میں واپس جا رہا ہے. circumventing سافٹ ویئر کی رجسٹریشن کے معاملے میں، اگر پتہ نہیں ہوتا جو جا رہا ہے واپس تقریب ہے کہ عام طور پر کہا جاتا ہو جاتا ہے کے بعد آپ کے سافٹ ویئر کے لئے ادا آپ کے رجسٹریشن کوڈ inputted ہے؟ چال کمپیوٹر کے آپ یہاں نہیں میں الگ الگ بلکہ اس کی بجائے یہاں جا سکتے ہیں. یا اگر آپ واقعی ہوشیار ہو، کی بورڈ میں ایک مخالف میں اصل میں ٹائپ کریں، مثال کے طور پر کر سکتے ہیں، ایک اصل لفظ نہیں، 20 نہیں حروف، لیکن لگتا ہے کہ وہ اصل میں اقسام میں کچھ ایسے حروف ہیں جو کوڈ کی نمائندگی کرتے ہیں. اور اس C کوڈ نہیں ہے، یہ اصل میں حروف کا ہونا ہو رہا ہے جو بائنری مشین کوڈ، 0s اور 1s کی نمائندگی کرتے ہیں. لیکن لگتا ہے کہ وہ ایسا کرنے کے لئے کے لئے کافی ہوشیار ہیں، کسی طرح GetString فوری طور پر کچھ ہے کہ اس کوڈ کو کہتے ہیں جو بنیادی طور پر مرتب ہوتا ہے میں پیسٹ اور آخری 4 بائٹس ہے کہ واپسی پتہ ادلیکھت. اور کیا پتہ ہے کہ ان پٹ کیا کرتا ہے؟ یہ اصل میں یہ لال مستطیل بفر کی پہلی بائٹ کے ایڈریس میں ذخیرہ ہے. تو کیا تم واقعی ہوشیار ہونا پڑے گا، اور اس کے برے لوگوں کے لئے مقدمے کی سماعت اور غلطی کا بہت ہے وہاں، لیکن اگر آپ کو اعداد و شمار کر سکتے ہیں اس بفر کتنا بڑا ہے ایسی ہے کہ ان پٹ میں گزشتہ چند بائٹس آپ اس پروگرام کو فراہم کی آپ کے بفر کے آغاز کا پتہ برابر ہو ہو، تو آپ یہ کر سکتے ہیں. اگر ہم نے عام طور پر خوش اور 0 \ کہتے ہیں، کہ کیا بفر میں ختم ہو جاتی ہے. لیکن اگر ہم زیادہ ہوشیار ہیں اور ہم نے کہ جو ہم حملے کا کوڈ generically فون کروں گا کے ساتھ بفر بھرنے کے - AAA، حملہ، حملے، حملہ - جہاں یہ صرف کچھ ہے کہ کچھ برا کرتا ہے ہے، کیا ہوگا اگر تم واقعی ہوشیار ہو ہوتا ہے، آپ یہ کر سکتا ہے. 80 C0، 35، 08 - سرخ باکس میں تعداد کی ایک ہی تسلسل ہے. نوٹس کہ وہ نمبر ہے کہ یہاں ہے سے میل کھاتا ہے. معکوس ترتیب میں ہے، لیکن یہ کسی اور وقت پر. یاد رکھیں کہ اس کی واپسی کا پتہ کیا گیا ہے جان بوجھ کر تبدیلی ایڈریس یہاں کے برابر، اہم نہیں پتہ. تو اگر برا آدمی سپر ہوشیار ہے، وہ اس حملے کے کوڈ میں شامل کرنے جا رہا ہے صارف کی فائلوں کی طرح کچھ حذف یا پاس ورڈ کو کاپی یا ایک صارف اکاؤنٹ بنانے کے کہ میں تو لاگ ان کر سکتے ہیں - میں سب کچھ ہے. اور یہ دونوں خطرہ ہے اور سی کی طاقت ہے کیونکہ آپ کو اشارہ کے ذریعے ياداشت کو رسائی حاصل ہے اور آپ کے کمپیوٹر کی میموری میں بھی آپ چاہتے ہیں اس لئے لکھ سکتے ہیں، آپ کو ایک کمپیوٹر بھی آپ چاہتے ہیں کر سکتے ہیں صرف کی طرف سے اس کی اپنی میموری کی جگہ کے اندر اندر ادھر ادھر ہونے کود. اور اس دن بہت سے پروگراموں اور بہت سے ویب سائٹ ہے کہ سمجھوتہ کر رہے ہیں اس کا فائدہ لینے والے لوگوں کو ذیل میں ابال. اور یہ ایک سپر بہتر حملے کی طرح لگتا ہے، لیکن یہ اس طرح ہمیشہ نہیں ہے شروع ہو سکتا ہے. حقیقت یہ ہے کہ کیا برے لوگ عام طور پر کیا کرے گا، چاہے وہ ایک کمانڈ لائن میں ایک پروگرام یا ایک GUI پروگرام یا ایک ویب سائٹ ہے، تم نے ابھی ابھی قسم کی معمولی ہدایات فراہم کرنا شروع کریں. آپ کو تلاش کے فیلڈ اور ہٹ درج کریں میں ایک بہت بڑا لفظ میں ٹائپ کریں، اور آپ اگر ویب سائٹ کریش ہو جاتا ہے تو انتظار یا آپ اگر پروگرام کوئی غلطی پیغام اظہار کو دیکھنے کے لئے انتظار کیونکہ اگر تم برا آدمی کے طور پر خوش ہو جاؤ اور آپ کو کچھ پاگل ان پٹ فراہم کرتے ہیں کہ اس پروگرام ہے، اس کا مطلب ہے کہ پروگرامر نے اپنے برے رویے کی امید نہیں تھی کریش ہو جاتا، جس کا مطلب ہے کہ آپ شاید کافی کوشش، کافی مقدمے کی سماعت اور غلطی کے ساتھ کر سکتے ہیں، اعداد و شمار کس طرح ایک سے زیادہ عین مطابق حملے چھیڑنے. سلامتی کے تو زیادہ سے زیادہ ایک حصہ ان حملوں کو نہ صرف مکمل طور پر گریز لیکن ان کا پتہ لگانے اور اصل میں نوشتہ دیکھ اور، یہ دیکھ کر پاگل آدانوں آپ کی ویب سائٹ میں ٹائپ لوگ ہیں کیا تلاش کی اصطلاحات کو لوگوں کو اپنی ویب سائٹ میں ٹائپ ہے کچھ بفر overflowing کی امید میں. اور یہ کیا سادہ مبادیات کو فوڑے ایک صف ہے اور اس اور استعمال کرنے کے لئے میموری مختص مطلب ہے. ہے کہ پھر بھی یہ ہے سے متعلق ہے. چلو صرف ایک ہارڈ ڈرائیو کے اندر ایک بار پھر نظر. آپ کو ایک یا دو ہفتے پہلے سے یاد ہے کہ تم اپنے ریسایکل بن یا ردی کی ٹوکری میں کر سکتے ہیں جب فائلوں، کھینچ کر لائیں کیا ہوتا ہے؟ >> [طالب علم] کوئی بات نہیں ہے. >> بالکل کچھ بھی نہیں ہے، ٹھیک ہے؟ آخر میں اگر آپ ڈسک کی جگہ کم چلاتے ہیں، ونڈوز یا میک OS آپ کے لئے فائلوں کو حذف کرنے شروع کر دیں گے. لیکن اگر آپ وہاں میں کچھ کھینچ کر لائیں، جو تمام محفوظ نہیں ہے. آپ کے روممیٹ یا دوست یا خاندان کے کسی رکن کے تمام کرنا ہے ڈبل کلک کریں اور ہے، voila، تمام خاکہ فائلوں ہے کہ آپ کو خارج کرنے کی کوشش کی ہے. ہم میں سے زیادہ تر کم از کم پتہ ہے کہ تم صحیح یا کلک کریں کلک کو قابو میں رکھو اور اس طرح خالی ردی کی ٹوکری یا کچھ اور. لیکن پھر بھی کہ ٹرک کافی نہیں کرتی کیونکہ جب تم میں سے کسی ایک کو آپ کو آپ کی ہارڈ ڈرائیو پر ایک فائل ہے کیا ہوتا ہے کہ کچھ ورڈ دستاویز یا کوئی JPEG کی نمائندگی کرتا ہے، اور یہ آپ کی ہارڈ ڈرائیو کی نمائندگی کرتا ہے، اور دو کا کہنا ہے کہ اس sliver کہ فائل کی نمائندگی کرتا ہے، اور یہ 0s اور 1s کی ایک پوری چڑھانے کے پر مشتمل ہے. جب آپ اس فائل کو صرف ردی کی ٹوکری میں مت گھسیٹو کیا ہوتا ہے بن کو ری سائیکل کر سکتے ہیں یا بلکہ یہ خالی ہے؟ کچھ بھی نہیں کی بنیاد پر ترتیب دیں. یہ بالکل نہیں ہے نہیں ہے. اب یہ صرف کچھ بھی نہیں ہے کیونکہ کچھ اس کے ٹیبل کی شکل میں ہوتا ہے. تو وہاں ایک کمپیوٹر میموری کے اندر ڈیٹا بیس یا ٹیبل کے کسی قسم ہے کہ بنیادی طور پر فائلوں کے لیے ایک کالم 'کے نام اور فائلوں کے لئے ایک کالم' مقام ہے، یہ 123 مقام، صرف ایک بے ترتیب تعداد میں کہاں ہو سکتا ہے. تو ہم x.jpeg اور 123 کے مقام کی طرح کچھ ہو سکتا ہے. اس کے بعد کیا ہوتا ہے جب آپ واقعی میں آپ کی ردی کی ٹوکری خالی ہے؟ وہ دور چلا جاتا ہے. لیکن کیا کرتا دور نہیں جانا 0s اور 1s ہے. تو پھر کیا pset4 کنکشن ہے؟ ٹھیک ہے، pset4 کے ساتھ، صرف اس لئے کہ ہم نے غلطی سے کامپیکٹ فلیش کارڈ ختم ہے بن گیا ہے کہ بدقسمتی سے ان تصاویر کی تمام یا صرف کیونکہ یہ تھا خراب کا مطلب یہ نہیں ہے کہ 0s اور 1s اب بھی نہیں ہے. شاید ان میں سے کچھ کھو دیا ہے کیونکہ کچھ خراب کیا گیا ہے احساس ہے کہ کچھ 0s 1s بن گیا اور 1s 0s بن گیا. بری چیزیں ہو چھوٹی گاڑی سافٹ ویئر یا خراب ہارڈ ویئر کی وجہ سے کر سکتے ہیں. لیکن ان بٹس کے بہت سے، ہو سکتا ہے ان میں سے بھی 100٪، اب بھی وہاں ہیں. یہ صرف ہے کہ کمپیوٹر یا کیمرے کا پتہ جہاں JPEG1 شروع نہیں کرتا اور جہاں JPEG2 شروع کر دیا. لیکن اگر آپ پریمی کے تھوڑا سا ہے جہاں ان JPEGs ہیں کے ساتھ پروگرامر جانتے ہیں، یا کیا وہ طرح نظر آتے ہیں تو آپ کو 0s اور 1s ہیں اور کہتے ہیں JPEG، JPEG کا تجزیہ کر سکتے ہیں، آپ بنیادی طور پر کے لئے صرف ایک کے ساتھ ایک پروگرام لکھنے یا کر سکتے ہیں جبکہ لوپ کہ ان فائلوں میں سے ہر ایک شفاياب. تو سبق اس کے بعد محفوظ طریقے سے آپ کی فائلوں کی صفائی شروع کی ہے اگر آپ کو یہ مکمل طور پر سے بچنے کے لئے کرنا چاہتے ہیں. جی ہاں. [طالب علم] کیسے یہ آپ کے کمپیوٹر پر ہے ہے کہ آپ کو مزید میموری سے تم سے پہلے کیا ہے؟ میں مزید میموری سے تم سے پہلے کیا ہے - >> [طالب علم] مزید دستیاب میموری. اوہ. اچھا سوال ہے. تو پھر کیوں ردی کی ٹوکری خالی کرنے کے بعد آپ کے کمپیوٹر میں آپ کو بتا ہے کہ آپ اس کے لئے مزید مفت خلا سے تم سے پہلے کیا ہے؟ مختصر میں، کیونکہ یہ جھوٹ بول رہی ہے. تکنیکی طور پر، آپ کو مزید جگہ ہے کیونکہ اب تم نے کہا ہے آپ کو دیگر چیزیں ڈال جہاں اس فائل کو ایک بار کر سکتے ہیں. لیکن اس کا یہ مطلب یہ نہیں بٹس دور جا رہے ہیں ہے، پر اس کا یہ مطلب نہیں ہے بٹس تمام 0s کی جا رہی ہے مثال کے طور پر تبدیل کر دیا گیا ہے، آپ کے تحفظ کے لئے ہے. تو اس کے برعکس کی طرف سے، اگر آپ کو محفوظ طریقے سے فائلوں کو مٹانے یا جسمانی طور پر آلہ تباہ جو سچ ہے کہ ارد گرد صرف کبھی کبھی راستہ ہے. تو ہم نیم ڈراونا نوٹ کریں کہ کیوں نہیں چھوڑ دیتے، اور ہم نے تم سے پیر کو نظر آئے گا. [تعریف] [CS50.TV]