1 00:00:00,000 --> 00:00:02,670 >> [थीम संगीत] 2 00:00:02,670 --> 00:00:11,834 3 00:00:11,834 --> 00:00:13,365 >> अध्यक्ष 1: हाय, सब लोग. 4 00:00:13,365 --> 00:00:14,365 अनुभाग के लिए वापस स्वागत है. 5 00:00:14,365 --> 00:00:15,700 6 00:00:15,700 --> 00:00:18,700 , मैं हूँ यही वजह है कि लवली दिन out-- सुनिश्चित करें, यहां केवल चार आप की कर रहे हैं 7 00:00:18,700 --> 00:00:21,180 और नहीं हमारे सामान्य पैक. 8 00:00:21,180 --> 00:00:22,670 मैं इस सप्ताह के अंत बीमार कर दिया गया है. 9 00:00:22,670 --> 00:00:24,294 इसलिए मैं आप लोगों के लिए स्टारबर्स्ट नहीं है. 10 00:00:24,294 --> 00:00:26,400 और मैं खाँसी शुरू हो सकता है बहुत इस दौरान. 11 00:00:26,400 --> 00:00:27,790 तो बस मेरे साथ सहन. 12 00:00:27,790 --> 00:00:30,624 मैं वास्तव में प्रयास करने के लिए जा रहा हूँ और, पहले इस के माध्यम से प्राप्त 13 00:00:30,624 --> 00:00:32,290 हालांकि, इससे पहले कि मैं एक खाँसी का दौरा किया है. 14 00:00:32,290 --> 00:00:33,410 15 00:00:33,410 --> 00:00:37,390 लेकिन अभी मुझे एक पर आसान हो कि bit-- थोड़ा मैं पूछना सब है. 16 00:00:37,390 --> 00:00:39,370 17 00:00:39,370 --> 00:00:44,289 >> तो today-- के लिए हमारे एजेंडा सिर्फ एक reminder-- अपने प्रश्नोत्तरी अगले सप्ताह है. 18 00:00:44,289 --> 00:00:46,830 मैं यह तो आप यह पिछले सप्ताह कहा था तुम गार्ड से पकड़ नहीं होगा. 19 00:00:46,830 --> 00:00:47,954 तो मैं तुम्हें फिर से याद दिलाता हूँ. 20 00:00:47,954 --> 00:00:49,180 अगले हफ्ते की अपनी प्रश्नोत्तरी. 21 00:00:49,180 --> 00:00:52,730 कि अंत करने के लिए अगले हफ्ते खंड बहुत अधिक हो जाएगा 22 00:00:52,730 --> 00:00:55,180 of-- मैं कोशिश करते हैं और कुछ समीक्षा में काम करेंगे. 23 00:00:55,180 --> 00:00:58,130 तुम लोग कर सकते थे तो अगर मुझे भेज कर मेरी मदद 24 00:00:58,130 --> 00:01:00,990 आप आराम कर रहे हैं कि चीजें , आप के बारे में चिंतित हैं कि, साथ 25 00:01:00,990 --> 00:01:03,530 आप के लिए करना चाहते हैं कि विषयों मुझे लगता है कि बहुत अच्छा होगा, कवर करने के लिए. 26 00:01:03,530 --> 00:01:05,740 तो मैं कोशिश करते हैं और उन्हें काम कर सकते हैं हमारे अनुभाग अगले सप्ताह में 27 00:01:05,740 --> 00:01:11,540 या आप अतिरिक्त सामग्री या प्रस्तुत करने का भेजें आप कहीं और नहीं मिल सकता है. 28 00:01:11,540 --> 00:01:12,150 >> हाँ! 29 00:01:12,150 --> 00:01:13,520 अधिक लोग आ रहे हैं! 30 00:01:13,520 --> 00:01:17,320 मैं मैं बुरी तरह पिछले ऐसा क्यों किया, सोचा सप्ताह, कोई भी वापस आना चाहती है कि? 31 00:01:17,320 --> 00:01:18,065 मुझे डर लग रहा है. 32 00:01:18,065 --> 00:01:18,892 33 00:01:18,892 --> 00:01:21,100 अन्य तीन चीजें इतनी हम पर जाने के लिए जा रहे हैं कि 34 00:01:21,100 --> 00:01:24,850 हैं पुनर्निर्देशन, फ़ाइल मैं / हे, और फिर संकेत और गतिशील स्मृति. 35 00:01:24,850 --> 00:01:29,160 मैं आप सभी के बारे में सुपर उत्साहित कर रहे हैं यकीन pointers-- हर किसी का पसंदीदा विषय है, 36 00:01:29,160 --> 00:01:31,310 समझने के लिए इतना आसान. 37 00:01:31,310 --> 00:01:33,130 मैं तुम लोगों को सब ठीक है, मिल गया है कि यकीन है? 38 00:01:33,130 --> 00:01:39,510 >> तो सबसे पहली बात, redirection-- यह मूल रूप से सिर्फ एक रास्ता है 39 00:01:39,510 --> 00:01:42,920 कैसे आप इनपुट को नियंत्रित करने के लिए अपने कार्यक्रम में बातें, 40 00:01:42,920 --> 00:01:44,606 कैसे अपने कार्यक्रम से तुम उत्पादन बातें. 41 00:01:44,606 --> 00:01:46,980 मुख्य तरीके कि तुम लोग इसके साथ बातचीत के दौरान किया गया है 42 00:01:46,980 --> 00:01:51,650 सिर्फ मानक के माध्यम से बाहर है यहाँ अपने प्रिंट स्क्रीन के साथ. 43 00:01:51,650 --> 00:01:55,940 लेकिन वहाँ तरीके हैं हम यहाँ देख pipe-- 44 00:01:55,940 --> 00:01:58,980 हमारे words-- तरह से एक है पाइप कि जानकारी की 45 00:01:58,980 --> 00:02:02,850 या एक फ़ाइल से एक फाइल में है कि डेटा. 46 00:02:02,850 --> 00:02:05,820 यह सिर्फ अलग अलग तरीकों से है अपने कार्यक्रम में बातें हो रही 47 00:02:05,820 --> 00:02:10,681 और अपने कार्यक्रम से बाहर है, बजाय बस इस स्क्रीन को उन्हें मुद्रण 48 00:02:10,681 --> 00:02:12,430 या बातें inputting कमांड लाइन से. 49 00:02:12,430 --> 00:02:13,760 50 00:02:13,760 --> 00:02:18,030 >> तो सबसे पहले एक छोटी सी है कैरेट से अधिक. 51 00:02:18,030 --> 00:02:22,085 यह सिर्फ उत्पादन प्रिंट output-- तो बजाय अपनी स्क्रीन की एक फाइल करने के लिए. 52 00:02:22,085 --> 00:02:23,620 53 00:02:23,620 --> 00:02:29,500 आप मुद्रित कि कुछ था तो अगर "नमस्ते, दुनिया!" स्क्रीन करने के लिए, 54 00:02:29,500 --> 00:02:32,400 आप के बजाय इसे डाल , output.text कि करने के लिए 55 00:02:32,400 --> 00:02:35,220 output.text नामक इस फ़ाइल बनाता है. 56 00:02:35,220 --> 00:02:38,550 जब आप इसे खोलने और, यह हूँ "नमस्ते, दुनिया!" कहते हैं वहाँ में. 57 00:02:38,550 --> 00:02:41,410 इस सुपर उपयोगी हो सकता है आप त्रुटियों की एक टन है अगर 58 00:02:41,410 --> 00:02:43,430 वास्तव में, हम इस एक में देखते हैं. 59 00:02:43,430 --> 00:02:46,810 आप दो कैरट करते हैं, यह हूँ त्रुटि संदेश मुद्रित. 60 00:02:46,810 --> 00:02:52,090 >> आप के साथ एक समस्या हो रही है तो संकलन, यह त्रुटियों की एक बहुत कुछ है 61 00:02:52,090 --> 00:02:56,770 और आप कोशिश में फंस गया हो रही है अपने आदेश पंक्ति में स्क्रॉल करने के लिए 62 00:02:56,770 --> 00:02:59,110 उन सभी के माध्यम से, आप कर सकते हैं सिर्फ एक फाइल करने के लिए उन्हें प्रिंट, 63 00:02:59,110 --> 00:03:02,130 इतना है कि उस फ़ाइल को खोलने आप उन के माध्यम से आसान स्क्रॉल कर सकते हैं. 64 00:03:02,130 --> 00:03:05,160 मैं वास्तव में एक है कि इस्तेमाल किया बहुत जब मैं डिबगिंग गया था 65 00:03:05,160 --> 00:03:07,970 मशीन सीखने के लिए मेरे 181 psets. 66 00:03:07,970 --> 00:03:10,000 तो यह बाद में सुपर उपयोगी हो सकता है. 67 00:03:10,000 --> 00:03:18,370 आप एक प्रोग्राम है, तो यह भी उपयोगी है हो सकता है कि एक पुस्तकालय पैदा कर रहा है 68 00:03:18,370 --> 00:03:20,430 या कुछ सेट सृजन तार का, और आप 69 00:03:20,430 --> 00:03:22,846 देखना है कि सक्षम होने की जरूरत यह उन्हें ठीक से पैदा कर रहा है. 70 00:03:22,846 --> 00:03:23,860 71 00:03:23,860 --> 00:03:25,160 यह तरीका है कि है. 72 00:03:25,160 --> 00:03:28,280 >> तो तुम, एक फाइल करने के लिए आप उन्हें प्रिंट अगर अधिक उन्हें आसानी से जांच कर सकते हैं, है ना? 73 00:03:28,280 --> 00:03:30,930 स्क्रॉल करने के लिए कोशिश कर रहा बनाम अपने कमांड लाइन के माध्यम से. 74 00:03:30,930 --> 00:03:32,740 75 00:03:32,740 --> 00:03:35,820 और फिर एक बात नोट करने के लिए कि बस अधिक से अधिक के साथ है 76 00:03:35,820 --> 00:03:40,090 कैरट से, आप लिख रहे हैं पहले से ही exists-- कि एक फाइल करने के लिए 77 00:03:40,090 --> 00:03:44,990 इसलिए हम इस पहले भाग गया जैसे अगर समय, हम, output.text करने के लिए रखा 78 00:03:44,990 --> 00:03:49,970 और फिर हम एक दूसरे कार्यक्रम था कार्यक्रम दो के रूप में यह मुद्रित कि 79 00:03:49,970 --> 00:03:54,250 और, output.text करने की तुलना में एक अधिक से अधिक किया यह तो that-- ऊपर लिख देगा 80 00:03:54,250 --> 00:03:56,715 में कभी था क्या अधिलेखित उस फ़ाइल के साथ शुरू करने के लिए. 81 00:03:56,715 --> 00:03:57,720 82 00:03:57,720 --> 00:04:00,750 >> आप संलग्न करना चाहते हैं तो एक फाइल करने के लिए, हम यहाँ देखते हैं, 83 00:04:00,750 --> 00:04:04,779 तुम सिर्फ लक्षण दो से अधिक नहीं है. 84 00:04:04,779 --> 00:04:05,820 और यह करने के लिए संलग्न करेंगे. 85 00:04:05,820 --> 00:04:06,750 यह इसके ऊपर लिखना नहीं होगा. 86 00:04:06,750 --> 00:04:09,770 आप कई चलाने की जरूरत है तो अगर कार्यक्रमों तरह से रखने के लिए और 87 00:04:09,770 --> 00:04:13,170 उन सभी को क्या कर रहे हैं का ट्रैक एक फ़ाइल में आप की ओर लौटने, 88 00:04:13,170 --> 00:04:14,190 कि यह करने के लिए एक रास्ता है. 89 00:04:14,190 --> 00:04:17,231 आप परवाह नहीं करते, तो आपकी फ़ाइल में क्या है और यह ओवरराइट करने के लिए अनुमति दी है 90 00:04:17,231 --> 00:04:19,204 आप बस से एक भी अधिक से अधिक उपयोग कर सकते हैं. 91 00:04:19,204 --> 00:04:20,600 कि हर किसी को मतलब? 92 00:04:20,600 --> 00:04:23,205 93 00:04:23,205 --> 00:04:31,140 >> दर्शक: जैसा डॉट अधिक नमस्कार स्लेश उत्पादन डॉट पाठ से, जैसे दो बार, 94 00:04:31,140 --> 00:04:34,030 यह बस केवल उत्पादन पर दिखाता हूँ डॉट पाठ एक दूसरे time-- 95 00:04:34,030 --> 00:04:34,810 >> अध्यक्ष 1: ठीक है. 96 00:04:34,810 --> 00:04:40,450 तो यह अभी पूरी तरह से मूल रूप से होगा साथ शुरू करने के लिए वहां गया था क्या अधिलेखित. 97 00:04:40,450 --> 00:04:44,260 यहाँ, इस फाइल तो पहले से ही output.text 98 00:04:44,260 --> 00:04:48,230 आप फोन मूल रूप से जो कुछ मौजूद है, कि फिर से एक भी अधिक से अधिक के साथ 99 00:04:48,230 --> 00:04:51,920 आप अभी इसके बारे में सोच सकते हैं की तुलना जैसे ही यह फ़ाइल बदल दिया. 100 00:04:51,920 --> 00:04:54,824 आप एक पद बचत कर रहे हैं जैसे जब आप के रूप में बचा है दस्तावेज़ और, 101 00:04:54,824 --> 00:04:57,365 और आप एक ही नाम रखना, और यह पूरी तरह से it-- लिख देगा 102 00:04:57,365 --> 00:04:58,680 इस बात की ही तरह है. 103 00:04:58,680 --> 00:05:00,380 104 00:05:00,380 --> 00:05:03,550 किसी को भी इस पर कोई प्रश्न हैं सिर्फ एक फाइल करने के लिए outputting? 105 00:05:03,550 --> 00:05:05,051 106 00:05:05,051 --> 00:05:05,550 बहुत बढ़िया. 107 00:05:05,550 --> 00:05:11,440 >> तो जाहिर है, आप रिवर्स अगर दिशा तीर, यह निवेश कर सकते हैं. 108 00:05:11,440 --> 00:05:13,090 109 00:05:13,090 --> 00:05:19,960 तो तुम लोगों को था जब सीज़र या Visioneer की तरह 110 00:05:19,960 --> 00:05:23,195 और आप इनपुट कुछ करने के लिए था, आप एक कमांड लाइन तर्क था 111 00:05:23,195 --> 00:05:24,960 यह कि वास्तव में इनपुट. 112 00:05:24,960 --> 00:05:27,410 यह ऐसा करने के लिए एक और तरीका है. 113 00:05:27,410 --> 00:05:30,520 तो बजाय इंतजार कर के एक कमांड प्रॉम्प्ट के लिए, 114 00:05:30,520 --> 00:05:33,800 आप के लिए कहा है जब की तरह अपने सीज़र या Visioneer में संदेश, 115 00:05:33,800 --> 00:05:36,490 आप एक पाठ फ़ाइल था कि, अपने संदेश था 116 00:05:36,490 --> 00:05:38,280 आप सिर्फ इतना है कि में टाइप कर सकते हैं. 117 00:05:38,280 --> 00:05:44,930 >> इस डॉट की तरह थे तो अगर सीज़र स्लेश 3 तीर इनपुट पाठ, की तुलना में कम है, जो 118 00:05:44,930 --> 00:05:47,240 अपने संदेश यह है कि, बस ठीक चला जाएगा. 119 00:05:47,240 --> 00:05:51,310 120 00:05:51,310 --> 00:05:54,020 जब आपके सीजर कार्यक्रम वास्तव में उपयोगकर्ता से इनपुट के लिए कहा, 121 00:05:54,020 --> 00:05:57,360 यह पहले से ही है क्योंकि यह होगा आप इस फ़ाइल में टाइप किया है. 122 00:05:57,360 --> 00:05:58,830 वह सिर्फ एक और तरीका है. 123 00:05:58,830 --> 00:06:02,445 Output-- की बस एक रिवर्स अपने डेटा के लिए सिर्फ इनपुट. 124 00:06:02,445 --> 00:06:04,570 125 00:06:04,570 --> 00:06:06,680 >> और फिर पिछले एक पाइप है. 126 00:06:06,680 --> 00:06:07,780 तो यह एक बहुत अच्छा. 127 00:06:07,780 --> 00:06:09,890 यह करने के लिए आपको अनुमति देता है एक के उत्पादन में ले 128 00:06:09,890 --> 00:06:13,695 कार्यक्रम और रूप में रख दिया एक अन्य कार्यक्रम के लिए इनपुट. 129 00:06:13,695 --> 00:06:15,250 130 00:06:15,250 --> 00:06:18,630 मैं आप में से अगर किसी को पता नहीं है समझने के साथ खेला 131 00:06:18,630 --> 00:06:20,590 कि CS50 हो सकता है यह होगा तुम्हें दे दिया, लेकिन 132 00:06:20,590 --> 00:06:27,380 आप कुछ नमूना लेने की अनुमति , फ़ाइल आपके एन्क्रिप्शन में टाइप करें, 133 00:06:27,380 --> 00:06:30,350 और फिर वहाँ से टाइप अपने डिक्रिप्शन में कि 134 00:06:30,350 --> 00:06:32,470 बनाने के लिए यकीन है कि यह एक ही निकला. 135 00:06:32,470 --> 00:06:34,050 तो यह एक तरह से तीन तरह पाश की तरह है. 136 00:06:34,050 --> 00:06:38,400 137 00:06:38,400 --> 00:06:39,423 इसके लिए जाओ. 138 00:06:39,423 --> 00:06:41,785 >> दर्शक: एक कार्यक्रम हैं एकाधिक आदानों है 139 00:06:41,785 --> 00:06:47,646 जो इनपुट यह बताने के लिए एक रास्ता है के लिए पाठ फ़ाइल या उत्पादन का उपयोग करने के लिए? 140 00:06:47,646 --> 00:06:49,325 >> अध्यक्ष 1: यह कई जानकारी है. 141 00:06:49,325 --> 00:06:52,190 142 00:06:52,190 --> 00:07:00,430 यह बात जब अपने input-- फाइल जो कुछ भी इनपुट के लिए पहली बार है कि पूछ रही है, यह बात है 143 00:07:00,430 --> 00:07:03,240 यह जा रहा है, मुझे लगता है, कल्पना करने के लिए पूरी फ़ाइल में पाइप के लिए जा रहा. 144 00:07:03,240 --> 00:07:03,979 145 00:07:03,979 --> 00:07:07,145 आप कई जानकारी है, तो आप कर रहे हैं तो एकाधिक फ़ाइलों में पाइपिंग होने जा रहा. 146 00:07:07,145 --> 00:07:08,190 147 00:07:08,190 --> 00:07:12,390 तो अगर आप संदेशों के लिए पूछ रहे हैं अपने कोड में तीन बार, 148 00:07:12,390 --> 00:07:15,230 तुम डाल करने जा रहे हैं तीन अलग अलग फ़ाइलों में. 149 00:07:15,230 --> 00:07:15,980 और यह पागल हो जाता है. 150 00:07:15,980 --> 00:07:18,188 और अगर तुम नहीं करना चाहिए अभी उस के बारे में चिंता है. 151 00:07:18,188 --> 00:07:19,150 लेकिन उस विचार है. 152 00:07:19,150 --> 00:07:20,680 153 00:07:20,680 --> 00:07:26,822 >> तो हाँ, पाइप से एक की सिर्फ उत्पादन है कार्यक्रम अन्य में इनपुट का उपयोग करता है. 154 00:07:26,822 --> 00:07:27,665 हर कोई वहाँ अच्छा? 155 00:07:27,665 --> 00:07:28,565 156 00:07:28,565 --> 00:07:29,065 कूल. 157 00:07:29,065 --> 00:07:30,170 158 00:07:30,170 --> 00:07:30,932 ठीक. 159 00:07:30,932 --> 00:07:32,890 आप शायद नहीं होगा इसके साथ बहुत अधिक करने की. 160 00:07:32,890 --> 00:07:35,670 लेकिन आप को समझना चाहिए तरीके आप इस का उपयोग कर सकते हैं. 161 00:07:35,670 --> 00:07:38,910 और कुछ मामलों रहे हैं कि आप इसका इस्तेमाल करना चाहते हो सकता है. 162 00:07:38,910 --> 00:07:44,590 >> इसलिए मैं / O-- मैं आप क्या कर रहे हैं पता फाइल saying-- हम से पढ़ने के लिए इस्तेमाल कर रहे हैं 163 00:07:44,590 --> 00:07:50,500 और वहाँ हमारे स्क्रीन के लिए लेखन, जिसमें मानक और बाहर मानक है. 164 00:07:50,500 --> 00:07:54,370 और कहा कि तुम लोग कर दिया गया है क्या है यहां कक्षा की शुरुआत के बाद से कर रहे हैं. 165 00:07:54,370 --> 00:07:58,220 लेकिन आप भी पढ़ सकते हैं और फ़ाइलों को लिख सकते हैं, मैं / O-- तो इनपुट फ़ाइल सभी फाइल है, जो 166 00:07:58,220 --> 00:07:59,850 यह उत्पादन के लिए खड़ा है. 167 00:07:59,850 --> 00:08:00,930 168 00:08:00,930 --> 00:08:04,360 तो यह मूल रूप से इसका मतलब है कि अब आप अपने डेटा स्टोर कर सकते हैं. 169 00:08:04,360 --> 00:08:08,460 >> आप बस करने के लिए इसे प्रिंट जब स्क्रीन, यह मूल रूप से, सही हो गया है? 170 00:08:08,460 --> 00:08:12,507 जैसे ही आप हैलो "बनाने के रूप में दुनिया "और भागो" हैलो दुनिया " 171 00:08:12,507 --> 00:08:14,090 यह स्क्रीन करने के लिए "नमस्ते विश्व" प्रिंट. 172 00:08:14,090 --> 00:08:16,370 लेकिन आप वास्तव में ऐसा नहीं कर सकते वहाँ से इसके साथ कुछ भी. 173 00:08:16,370 --> 00:08:18,950 आप एक पाठ में दुकान फ़ाइल, फिर अचानक 174 00:08:18,950 --> 00:08:22,789 आप आप की अनुमति दी हो कि इस डेटा है हेरफेर या एक फाइल में डाल दिया, 175 00:08:22,789 --> 00:08:24,080 या बाद में एक कार्यक्रम में डाल दिया. 176 00:08:24,080 --> 00:08:26,370 177 00:08:26,370 --> 00:08:29,290 कारणों में से एक क्यों हम करते हैं यह सिर्फ है 178 00:08:29,290 --> 00:08:31,560 बाद में उपयोग के लिए डाटा स्टोर करने के लिए एक रास्ते के रूप में. 179 00:08:31,560 --> 00:08:34,790 180 00:08:34,790 --> 00:08:37,279 >> मैं यहाँ कदम की एक जोड़ी है सिर्फ मानक के माध्यम से चलने 181 00:08:37,279 --> 00:08:39,450 मैं / हे. एक कदम में, आप एक संदर्भ बनाने की जरूरत 182 00:08:39,450 --> 00:08:43,480 सभी के साथ फाइल करने के लिए टोपियां सितारा फ़ाइल. 183 00:08:43,480 --> 00:08:45,740 इसलिए कि एक फ़ाइल के लिए एक संकेत बनाता है. 184 00:08:45,740 --> 00:08:48,080 185 00:08:48,080 --> 00:08:49,650 तो फिर आप इसे खोलना चाहते हैं. 186 00:08:49,650 --> 00:08:52,940 और तुम, सचमुच, कहना सिर्फ फ़ाइल fopen के बराबर होती है. 187 00:08:52,940 --> 00:08:57,400 और यह एक वापसी करने जा रहा है आप अभी खोला फ़ाइल के लिए सूचक. 188 00:08:57,400 --> 00:08:59,610 189 00:08:59,610 --> 00:09:01,460 मैं आप में से एक जोड़े को देखा कार्यालय समय में दोस्तों. 190 00:09:01,460 --> 00:09:07,400 >> लेकिन चीजों में से एक remember-- संकेत है 191 00:09:07,400 --> 00:09:10,409 सही कुछ पता या अशक्त, हो सकता है? 192 00:09:10,409 --> 00:09:12,700 हम कभी एक मामले जहां है, तो कुछ, अशक्त लौट सकते हैं 193 00:09:12,700 --> 00:09:14,990 हम क्या करना है क्या हम कभी भी इसका इस्तेमाल से पहले? 194 00:09:14,990 --> 00:09:16,220 195 00:09:16,220 --> 00:09:19,000 हम अगर जांच की जरूरत यह शून्य या नहीं, सही है? 196 00:09:19,000 --> 00:09:23,600 आप में से कुछ था हो सकता है क्योंकि मुद्दा जहां जो भी वस्तु 197 00:09:23,600 --> 00:09:26,110 ब्रेकआउट में लौट जा रही थी शून्य था. 198 00:09:26,110 --> 00:09:28,170 आप प्रदर्शन करने की कोशिश की इस पर कुछ कार्य करते हैं. 199 00:09:28,170 --> 00:09:29,770 और आपके कंप्यूटर साइट गलती. 200 00:09:29,770 --> 00:09:30,725 है ना? 201 00:09:30,725 --> 00:09:33,640 मैं आप की एक जोड़ी शर्त कि मुद्दा था हो सकता है. 202 00:09:33,640 --> 00:09:38,890 >> Fopen के साथ तो, fopen या तो फ़ाइल के लिए एक संकेत लौटने, 203 00:09:38,890 --> 00:09:41,200 या कुछ गलत हो जाता है, यह शून्य वापस जाने के लिए जा रहा है. 204 00:09:41,200 --> 00:09:45,980 तो आप हमेशा की जांच की जरूरत यह शून्य वापस नहीं आया है कि 205 00:09:45,980 --> 00:09:47,880 आप कुछ और करने के लिए प्रयास करने से पहले. 206 00:09:47,880 --> 00:09:49,110 207 00:09:49,110 --> 00:09:51,974 यह एक मानक प्रतिमान की तरह है आप यहां जरूरत जा रहे हैं कि. 208 00:09:51,974 --> 00:09:54,390 एक मौका कभी अगर वहाँ कि कुछ, अशक्त लौट सकता है 209 00:09:54,390 --> 00:09:56,590 यकीन है कि यह सुनिश्चित करने के लिए जाँच आप आगे बढ़ना नहीं करता है पहले. 210 00:09:56,590 --> 00:09:58,911 अन्यथा, आप जा रहे हैं प्यारा साइट दोष पाने के लिए. 211 00:09:58,911 --> 00:10:00,410 और कोई भी उन लोगों के साथ निपटने के लिए पसंद करती है. 212 00:10:00,410 --> 00:10:03,180 213 00:10:03,180 --> 00:10:06,410 >> हम यहाँ देखते हैं, पहला तर्क तो फ़ाइल को बस मार्ग है. 214 00:10:06,410 --> 00:10:09,380 उस फ़ाइल मौजूद नहीं है, यह है कि फाइल बनाने के लिए जा रहा है. 215 00:10:09,380 --> 00:10:10,713 और यह सिर्फ रिक्त होने जा रहा है. 216 00:10:10,713 --> 00:10:10,789 217 00:10:10,789 --> 00:10:13,080 और फिर दूसरा तर्क आप चाहते हैं कि विधा है. 218 00:10:13,080 --> 00:10:14,610 हम इस फ़ाइल से पढ़ने के लिए चाहते हैं? 219 00:10:14,610 --> 00:10:15,560 आप इसे से लिखना चाहते हैं? 220 00:10:15,560 --> 00:10:16,476 आप संलग्न करना चाहते हैं? 221 00:10:16,476 --> 00:10:17,600 222 00:10:17,600 --> 00:10:20,670 इसलिए वास्तव में मैं सिर्फ said-- क्या फ़ाइल मौजूद नहीं है 223 00:10:20,670 --> 00:10:23,400 और आप से पढ़ने की कोशिश कर रहे हैं यह, यह एक त्रुटि फेंक करने के लिए जा रहा है. 224 00:10:23,400 --> 00:10:26,890 फ़ाइल अगर पसंद name-- हैं file.text अभी तक अस्तित्व में नहीं है 225 00:10:26,890 --> 00:10:29,250 और आप लिखना चाहते हैं यह करने के लिए, यह बनाएगा 226 00:10:29,250 --> 00:10:33,110 आप के लिए file.text नामक एक खाली फ़ाइल. 227 00:10:33,110 --> 00:10:36,612 और आप संलग्न करना चाहते हैं, आप एक ही बात करना चाहिए. 228 00:10:36,612 --> 00:10:38,081 कि मतलब? 229 00:10:38,081 --> 00:10:40,580 आप से पढ़ने की कोशिश कर रहे हैं अभी तक मौजूद नहीं है कि एक फ़ाइल, 230 00:10:40,580 --> 00:10:41,590 यह एक त्रुटि फेंक देंगे. 231 00:10:41,590 --> 00:10:44,340 अन्यथा, यह फाइल बनाएगा के लिए क्या आप यह चाहते हैं कि क्या करना है. 232 00:10:44,340 --> 00:10:45,970 233 00:10:45,970 --> 00:10:46,470 कूल. 234 00:10:46,470 --> 00:10:47,510 235 00:10:47,510 --> 00:10:48,880 अब हम फ़ाइल से पढ़ सकते हैं. 236 00:10:48,880 --> 00:10:52,570 और यह सिर्फ जा रहा तरह की है विभिन्न कार्यों के माध्यम से 237 00:10:52,570 --> 00:10:58,980 हम फ़ाइल मैं / ओ के लिए है. इस वसीयत इस सप्ताह के pset में आवश्यक हो 238 00:10:58,980 --> 00:11:00,505 अगर मुझे सही याद. 239 00:11:00,505 --> 00:11:02,880 हां, यह बिल्कुल हो जाएगा इस सप्ताह के pset में आवश्यक. 240 00:11:02,880 --> 00:11:04,260 241 00:11:04,260 --> 00:11:07,010 तो fgetc अगले चरित्र देता है. 242 00:11:07,010 --> 00:11:08,350 243 00:11:08,350 --> 00:11:10,300 सिर्फ पाठ की एक पंक्ति रिटर्न fgets. 244 00:11:10,300 --> 00:11:11,790 245 00:11:11,790 --> 00:11:14,610 यह करने के लिए कुछ भी वापस आ जाएगी एक नई लाइन, और यह टूट जाएगा. 246 00:11:14,610 --> 00:11:15,950 247 00:11:15,950 --> 00:11:18,700 तो fread एक निश्चित पढ़ता बाइट्स और स्थानों उन की संख्या 248 00:11:18,700 --> 00:11:20,700 एक सरणी, में जो कुछ तुम हो सकता है 249 00:11:20,700 --> 00:11:25,485 फिर से size-- साथ करना चाहते हैं उपयोगी हो सकता है. 250 00:11:25,485 --> 00:11:26,550 251 00:11:26,550 --> 00:11:29,290 >> कितने लोग पढ़ लिया है वैसे pset कल्पना,? 252 00:11:29,290 --> 00:11:30,980 253 00:11:30,980 --> 00:11:32,261 ठीक. 254 00:11:32,261 --> 00:11:32,760 [अश्राव्य] 255 00:11:32,760 --> 00:11:35,380 256 00:11:35,380 --> 00:11:36,580 >> अध्यक्ष 1: ठीक है. 257 00:11:36,580 --> 00:11:37,530 ठीक है. 258 00:11:37,530 --> 00:11:41,940 यह एक मजेदार pset है that-- निश्चित रूप से पढ़ा. 259 00:11:41,940 --> 00:11:51,320 आप हटाई स्मृति ठीक करने के लिए मिलता है यह काम करता है जब वास्तव में रोमांचक card--. 260 00:11:51,320 --> 00:11:54,100 लेकिन निश्चित रूप से, कि पढ़ना शुरू. 261 00:11:54,100 --> 00:11:56,280 मुझसे बात आओ आप अगर इसके बारे में सवाल हैं. 262 00:11:56,280 --> 00:11:59,290 >> ठीक है, के रूप में तो मैं कह रहा था, fread बाइट्स की एक निश्चित संख्या में पढ़ता है. 263 00:11:59,290 --> 00:12:01,340 264 00:12:01,340 --> 00:12:03,590 यही कारण है कि कुछ मनमाना संख्या है आप स्थापित करने के लिए जा रहे हैं. 265 00:12:03,590 --> 00:12:05,990 266 00:12:05,990 --> 00:12:08,260 और फिर बस चाल fseek एक निश्चित स्थान के लिए. 267 00:12:08,260 --> 00:12:11,150 तो शायद आप परवाह नहीं है अगले 10 बाइट्स के बारे में. 268 00:12:11,150 --> 00:12:12,880 आप बस आगे छोड़ना चाहते. 269 00:12:12,880 --> 00:12:14,030 आप उन लोगों के बारे में परवाह नहीं है. 270 00:12:14,030 --> 00:12:16,280 आप बाइट 11 पर शुरू पढ़ना चाहते हैं. 271 00:12:16,280 --> 00:12:18,252 fseek आप ऐसा करने की अनुमति देता है. 272 00:12:18,252 --> 00:12:20,710 तो यह आप चयनात्मक होना करने की अनुमति देता आप क्या पढ़ रहे हैं के बारे में. 273 00:12:20,710 --> 00:12:25,880 Fgetc, fgets, और fread पढ़ें क्योंकि फ़ाइल में एक निश्चित स्थान से. 274 00:12:25,880 --> 00:12:27,260 275 00:12:27,260 --> 00:12:35,090 >> इस बारे में सोचने के लिए एक तरह से यह तो है हमारे फ़ाइल है, आप पहली बार इसे खोलते हैं, 276 00:12:35,090 --> 00:12:41,140 आप फाइल में यह स्थिति है कि शुरुआत में शुरू होता है. 277 00:12:41,140 --> 00:12:45,040 जब भी आप फोन fgetc, fgetf, या fread, 278 00:12:45,040 --> 00:12:48,875 इसमें से शुरू हो रहा है इस स्थिति मार्कर. 279 00:12:48,875 --> 00:12:51,340 280 00:12:51,340 --> 00:12:55,245 तुम सिर्फ पढ़ने के लिए कहना चाहते हैं यहाँ पर स्मृति के इस टुकड़ा. 281 00:12:55,245 --> 00:12:56,300 282 00:12:56,300 --> 00:12:57,960 तुम बस फोन नहीं कर सकते. 283 00:12:57,960 --> 00:13:02,430 आप यहाँ पर तलाश करनी और फिर वहाँ से पढ़ा 284 00:13:02,430 --> 00:13:06,540 या पढ़ा है, हो जाता है, या जीइ टीसी, क्या आप चाहते हैं पर निर्भर करता है. 285 00:13:06,540 --> 00:13:09,310 तो बस आपको अनुमति देता है तलाश स्मृति के कुछ भागों को छोड़. 286 00:13:09,310 --> 00:13:11,590 और कहा कि केवल है आप चीजों को छोड़ सकते हैं रास्ता 287 00:13:11,590 --> 00:13:14,012 अपने बफर में उन्हें पढ़ने के बिना. 288 00:13:14,012 --> 00:13:15,470 कि हर किसी को मतलब? 289 00:13:15,470 --> 00:13:21,110 290 00:13:21,110 --> 00:13:24,780 >> जाहिर है, वहाँ एक समानांतर here-- की बहुत 291 00:13:24,780 --> 00:13:27,780 हमारे उत्पादन, या इनपुट पुनर्निर्देशन, आप पढ़ना और लिखना है. 292 00:13:27,780 --> 00:13:31,800 तो fputc सिर्फ लिखता है एक फ़ाइल में चरित्र. 293 00:13:31,800 --> 00:13:33,655 fputs एक पंक्ति लिखता है. 294 00:13:33,655 --> 00:13:35,030 295 00:13:35,030 --> 00:13:37,420 Fprintf एक प्रारूपित उत्पादन प्रिंट. 296 00:13:37,420 --> 00:13:41,190 आप टैब है, तो या अंतरिक्ष, या whatnot. 297 00:13:41,190 --> 00:13:44,180 और फिर fwrite कुछ लिखता है एक फाइल करने के लिए बाइट्स की सरणी. 298 00:13:44,180 --> 00:13:48,860 तो यह उसी तरह है fwrite और fread अनुरूप हैं 299 00:13:48,860 --> 00:13:57,550 opposites-- fgets, fputs, और फिर fputc और fgetc-- बहुत सारे 300 00:13:57,550 --> 00:14:00,710 की पागल, जल्दी बातें. 301 00:14:00,710 --> 00:14:05,300 >> बस की तरह इस handy-- रखना आप अलग अलग समय के लिए होगा 302 00:14:05,300 --> 00:14:08,680 जहां शायद आप बस चाहते हैं एक समय में एक चरित्र. 303 00:14:08,680 --> 00:14:09,890 शायद तुम एक पूरी लाइन चाहते हैं. 304 00:14:09,890 --> 00:14:14,320 अपने शब्दकोश pset-- साथ जो दो psets में है, 305 00:14:14,320 --> 00:14:19,690 मुझे लगता है हम तुम एक पूरी दे, पर विश्वास एक पाठ प्रारूप में शब्दकोश 306 00:14:19,690 --> 00:14:22,252 जो हर शब्द है एक लाइन से अलग कर दिया. 307 00:14:22,252 --> 00:14:24,210 आप पढ़ने के लिए चाहते थे तो अगर एक समय में एक शब्द में, 308 00:14:24,210 --> 00:14:31,769 आप पढ़ रहे हैं आप क्या उपयोग हो सकता है और वे सभी, नई लाइनों पर अलग हो रहे हैं 309 00:14:31,769 --> 00:14:33,310 और आप सिर्फ एक समय में एक शब्द चाहते हैं? 310 00:14:33,310 --> 00:14:35,320 311 00:14:35,320 --> 00:14:36,040 >> दर्शक: fgets 312 00:14:36,040 --> 00:14:36,748 >> अध्यक्ष 1: ठीक है. 313 00:14:36,748 --> 00:14:39,960 Fgets-- कि रिटर्न क्योंकि जो कुछ भी एक लाइन पर है. 314 00:14:39,960 --> 00:14:42,750 और हर शब्द अपने अगर अपनी लाइन, हम fgets उपयोग कर सकते हैं. 315 00:14:42,750 --> 00:14:44,511 316 00:14:44,511 --> 00:14:45,010 कूल. 317 00:14:45,010 --> 00:14:47,290 कि भावना, हर कोई है? 318 00:14:47,290 --> 00:14:48,020 कूल? 319 00:14:48,020 --> 00:14:50,020 हाँ, हम करने के लिए ले जा रहे हैं संकेत के साथ मज़ा हिस्सा 320 00:14:50,020 --> 00:14:51,728 बहुत जल्द ही, जहां आप कुछ गणित करने के लिए मिलता है. 321 00:14:51,728 --> 00:14:52,776 और यह बहुत अच्छा होगा. 322 00:14:52,776 --> 00:14:55,690 323 00:14:55,690 --> 00:14:57,740 >> अपनी फाइल को बंद step-- पिछले. 324 00:14:57,740 --> 00:15:01,090 यहां तो कई चीजों के साथ, हमारे मानदंड में से एक 325 00:15:01,090 --> 00:15:03,550 यह वापसी कर सकते हैं यदि है शून्य, शून्य के लिए जाँच करें. 326 00:15:03,550 --> 00:15:06,160 आप कुछ खोलते हैं, क्या आप बेहतर बंद होगी. 327 00:15:06,160 --> 00:15:10,419 आप कर रहे हैं जब तक ठीक है, तो आप कर नहीं रहे आप इसे बंद कर दिया है जब तक किया. 328 00:15:10,419 --> 00:15:12,585 एक तरह से यह खत्म नहीं हुआ है जैसे मोटी औरत गाती है जब तक. 329 00:15:12,585 --> 00:15:14,130 यही कारण है कि अपनी फ़ाइल को बंद करने की तरह है. 330 00:15:14,130 --> 00:15:16,860 331 00:15:16,860 --> 00:15:19,190 यह यहां, कहते हैं बस हमेशा दोहराना 332 00:15:19,190 --> 00:15:21,750 तुम से पहले अपने फ़ाइल को खोलने पढ़ने या इसे करने के लिए लिख. 333 00:15:21,750 --> 00:15:24,450 आप इसे खोल दिया है और अगर हमेशा इसे बंद. 334 00:15:24,450 --> 00:15:25,460 ठीक है? 335 00:15:25,460 --> 00:15:25,960 कूल. 336 00:15:25,960 --> 00:15:26,835 >> यहाँ तो एक उदाहरण है. 337 00:15:26,835 --> 00:15:29,250 338 00:15:29,250 --> 00:15:34,330 मैं नहीं जानता कि tiny-- तो तुम अगर लोग बहुत अच्छी तरह से देख सकते हैं. 339 00:15:34,330 --> 00:15:36,805 केवल हम बढ़ सकते हैं किसी भी तरह चमक. 340 00:15:36,805 --> 00:15:40,430 341 00:15:40,430 --> 00:15:45,030 अगर मैं कर सकता मुझे वास्तव में यह करते हैं. 342 00:15:45,030 --> 00:15:48,020 343 00:15:48,020 --> 00:15:51,470 ठीक है, तुम लोग नहीं कर सकते हैं वास्तव में आपको लगता है कि सब पर कर सकते हैं देखते हैं? 344 00:15:51,470 --> 00:15:52,905 ठीक है, हम तो ऐसा करने के लिए जा रहे हैं. 345 00:15:52,905 --> 00:16:35,094 346 00:16:35,094 --> 00:16:35,594 [अश्राव्य] 347 00:16:35,594 --> 00:16:56,670 348 00:16:56,670 --> 00:16:58,605 >> मैं यह देखने के लिए ज्यादा बेहतर है मान. 349 00:16:58,605 --> 00:17:17,330 350 00:17:17,330 --> 00:17:19,455 किसी को भी देख सकते हैं जहाँ मेरी प्रश्न माउस चला गया है? 351 00:17:19,455 --> 00:17:22,837 आह, वहाँ यह संघर्ष क्या is--! 352 00:17:22,837 --> 00:17:48,910 353 00:17:48,910 --> 00:17:49,520 >> ठीक. 354 00:17:49,520 --> 00:17:53,845 असल में, तुम लोगों को तरह होना चाहिए क्या इस का एक विचार की कोशिश कर रही है. 355 00:17:53,845 --> 00:17:56,740 356 00:17:56,740 --> 00:17:57,600 यह सही नहीं है. 357 00:17:57,600 --> 00:17:58,851 358 00:17:58,851 --> 00:18:02,425 खर्च की तुलना लेकिन मैं नहीं बल्कि यह समझाना चाहते हैं अधिक समय ठीक से यह प्रारूप की कोशिश कर रहा. 359 00:18:02,425 --> 00:18:03,610 360 00:18:03,610 --> 00:18:07,280 असल में, आप यहाँ देख, हम फ़ाइल खोलने के साथ शुरू करते हैं. 361 00:18:07,280 --> 00:18:09,620 और हम कुछ है हम कर रहे हैं कि डेटाबेस फ़ाइल 362 00:18:09,620 --> 00:18:12,300 कि खोलने यह हमारे छात्रों का कहना है. 363 00:18:12,300 --> 00:18:14,020 और हम यह करने के लिए लिखने जा रहे हैं. 364 00:18:14,020 --> 00:18:15,060 365 00:18:15,060 --> 00:18:17,720 तो ज़ाहिर है, अशक्त वापसी. 366 00:18:17,720 --> 00:18:19,650 तो हम अशक्त के लिए जाँच करने के लिए है. 367 00:18:19,650 --> 00:18:22,930 और ऐसा नहीं है तो अगर अशक्त, हम के माध्यम से जाना. 368 00:18:22,930 --> 00:18:25,660 आप देखते हैं और, जैसा कि हम कर रहे हैं यहाँ के माध्यम से पाशन. 369 00:18:25,660 --> 00:18:26,960 छात्रों रहे हैं. 370 00:18:26,960 --> 00:18:30,520 छात्रों को तीन के रूप में परिभाषित हैश है. 371 00:18:30,520 --> 00:18:34,060 और क्या हम कर रहे हैं हम कर रहे है ठीक है, फाइल करने के लिए मुद्रण? 372 00:18:34,060 --> 00:18:36,975 तो क्या हम अपने फ़ाइल को बाहर मुद्रण कर रहे हैं? 373 00:18:36,975 --> 00:18:47,040 374 00:18:47,040 --> 00:18:48,906 >> दर्शक: स्कोर सरणी में है कि कर रहे हैं? 375 00:18:48,906 --> 00:18:49,680 >> अध्यक्ष 1: हाँ. 376 00:18:49,680 --> 00:18:50,980 में हैं कि स्कोर बिल्कुल array--. 377 00:18:50,980 --> 00:18:53,050 इसलिए हम इस खोल रहे हैं डेटाबेस फ़ाइल, जो 378 00:18:53,050 --> 00:18:56,040 मुझे लगता है किसी प्रकार का है ग्रेड डेटाबेस की. 379 00:18:56,040 --> 00:19:01,100 और हम बस से बाहर मुद्रण कर रहे हैं उस फ़ाइल के लिए प्रत्येक छात्र के स्कोर. 380 00:19:01,100 --> 00:19:02,140 कूल? 381 00:19:02,140 --> 00:19:02,640 अच्छा है. 382 00:19:02,640 --> 00:19:03,811 383 00:19:03,811 --> 00:19:04,310 बहुत बढ़िया. 384 00:19:04,310 --> 00:19:05,100 ठीक. 385 00:19:05,100 --> 00:19:06,950 To-- वापस पाने के चलो 386 00:19:06,950 --> 00:19:08,646 >> दर्शक: मैं एक त्वरित सवाल है. 387 00:19:08,646 --> 00:19:11,570 पाश के लिए printf नहीं में है? 388 00:19:11,570 --> 00:19:12,870 वह सिर्फ अगर पाश में है? 389 00:19:12,870 --> 00:19:14,370 अध्यक्ष 1: नहीं, यह पाश के लिए में है. 390 00:19:14,370 --> 00:19:16,150 391 00:19:16,150 --> 00:19:18,810 मैं यहाँ बहुत अच्छी तरह से अपने माउस नहीं देख सकता. 392 00:19:18,810 --> 00:19:21,359 तो मैं करने के लिए संघर्ष कर रहा हूँ ठीक से प्रारूप है. 393 00:19:21,359 --> 00:19:22,525 इस ब्रैकेट से चले जाना चाहिए. 394 00:19:22,525 --> 00:19:23,610 395 00:19:23,610 --> 00:19:25,130 यह यहां नीचे होना चाहिए. 396 00:19:25,130 --> 00:19:26,605 इस पाश के लिए अपने में क्या है. 397 00:19:26,605 --> 00:20:10,680 398 00:20:10,680 --> 00:20:11,180 क्या आप वहां मौजूद हैं. 399 00:20:11,180 --> 00:20:12,160 अब यह सुंदर है. 400 00:20:12,160 --> 00:20:16,720 तो यह बात छोड़कर be-- चाहिए कैसे मैं खारिज कर दिया कि कि पिछले ब्रैकेट के लिए. 401 00:20:16,720 --> 00:20:17,220 ठीक. 402 00:20:17,220 --> 00:20:19,491 कि हर किसी को मतलब? 403 00:20:19,491 --> 00:20:19,990 ठीक. 404 00:20:19,990 --> 00:20:23,750 हम पर स्थानांतरित करने के लिए जा रहे हैं अगली बात के लिए then-- 405 00:20:23,750 --> 00:20:26,180 जो, वास्तव में, आप जा रहे हैं कोड देखने की जरूरत है. 406 00:20:26,180 --> 00:20:28,370 तो मैं बस के लिए जा रहा हूँ उस पर सही अब नकल. 407 00:20:28,370 --> 00:20:31,500 408 00:20:31,500 --> 00:20:32,000 ठीक. 409 00:20:32,000 --> 00:20:35,110 इसलिए मैं इस कोड तुम लोगों को दिखाने के लिए जा रहा हूँ. 410 00:20:35,110 --> 00:20:38,240 और मैं आप कोशिश करते हैं और यह आंकड़ा करना चाहते हैं यह माना जाता है की क्या करना है. 411 00:20:38,240 --> 00:20:49,740 412 00:20:49,740 --> 00:20:52,480 >> इसलिए या तो एक मिनट ले that-- दिया. 413 00:20:52,480 --> 00:20:54,440 कोशिश करो और यहां क्या हो रहा है यह पता लगाने. 414 00:20:54,440 --> 00:21:58,840 415 00:21:58,840 --> 00:21:59,570 >> किसी भी विचार? 416 00:21:59,570 --> 00:22:08,180 417 00:22:08,180 --> 00:22:12,470 >> हम जानते हैं कि कम से कम दो कमांड लाइन में तर्क, सही? 418 00:22:12,470 --> 00:22:16,270 मैं जिनमें से एक होने जा रहा है ग्रहण कि [अश्राव्य] हमारे कार्यक्रम है की 419 00:22:16,270 --> 00:22:17,530 और फिर कुछ और. 420 00:22:17,530 --> 00:22:19,980 [अश्राव्य] कम है क्योंकि अगर दो से, हम उन पर चिल्लाना. 421 00:22:19,980 --> 00:22:21,140 है ना? 422 00:22:21,140 --> 00:22:25,300 और उपयोग से, ऐसा लग रहा है यह फ़ाइल किसी प्रकार का होने जा रहा है. 423 00:22:25,300 --> 00:22:26,260 हम सब कि करने के लिए सहमत हैं? 424 00:22:26,260 --> 00:22:29,110 425 00:22:29,110 --> 00:22:31,570 तो अब, कर पाश क्या है? 426 00:22:31,570 --> 00:22:32,570 यह क्या गुज़र रही है? 427 00:22:32,570 --> 00:22:35,000 428 00:22:35,000 --> 00:22:36,449 >> दर्शक: सभी फाइलों. 429 00:22:36,449 --> 00:22:37,240 अध्यक्ष 1: बिल्कुल. 430 00:22:37,240 --> 00:22:39,650 यह के माध्यम से हो रहा है सब हम वहाँ इनपुट है कि फ़ाइलें. 431 00:22:39,650 --> 00:22:40,720 432 00:22:40,720 --> 00:22:46,040 इसलिए प्रत्येक फ़ाइल के लिए, यह है वहाँ कुछ स्ट्रिंग खोलने. 433 00:22:46,040 --> 00:22:47,560 यह उस फ़ाइल को खोलने की है. 434 00:22:47,560 --> 00:22:48,060 है ना? 435 00:22:48,060 --> 00:22:49,140 436 00:22:49,140 --> 00:22:52,380 और यह इसे से पढ़ रहा है. 437 00:22:52,380 --> 00:22:53,420 438 00:22:53,420 --> 00:22:55,540 यह शून्य है बेशक, अगर जाँच. 439 00:22:55,540 --> 00:22:57,220 और फिर यह मुद्रण है. 440 00:22:57,220 --> 00:23:01,460 यह शून्य है, यह सिर्फ हमें बता रहा है कि कि मौजूद है कि एक फ़ाइल नहीं है. 441 00:23:01,460 --> 00:23:04,290 साथ याद है, क्योंकि हमारे फाइल करने के लिए मौजूद है पढ़ें. 442 00:23:04,290 --> 00:23:04,810 है ना? 443 00:23:04,810 --> 00:23:06,870 लिखने और संलग्न के साथ, आप इसके साथ भाग ले सकते हैं. 444 00:23:06,870 --> 00:23:08,970 लेकिन पढ़ने के साथ, हमारे फाइल करने के लिए मौजूद है. 445 00:23:08,970 --> 00:23:10,430 446 00:23:10,430 --> 00:23:13,330 >> और फिर यह मौजूद है, तो हम यहां क्या कर रहे हो? 447 00:23:13,330 --> 00:23:14,810 448 00:23:14,810 --> 00:23:15,780 चलो बस यहाँ शुरू करते हैं. 449 00:23:15,780 --> 00:23:18,815 क्या यह है यह पहली चरित्र do--. 450 00:23:18,815 --> 00:23:20,960 451 00:23:20,960 --> 00:23:21,790 यह क्या करता है? 452 00:23:21,790 --> 00:23:24,100 वह सही, एक चरित्र हो जाता है? 453 00:23:24,100 --> 00:23:25,400 तो क्या यह कर रहा है? 454 00:23:25,400 --> 00:23:26,775 यह पहला चरित्र हो रही है. 455 00:23:26,775 --> 00:23:28,860 456 00:23:28,860 --> 00:23:30,200 किसी को भी EOF पता है? 457 00:23:30,200 --> 00:23:31,170 >> दर्शक: फ़ाइल का अंत? 458 00:23:31,170 --> 00:23:32,680 >> अध्यक्ष 1: बिल्कुल file-- का अंत. 459 00:23:32,680 --> 00:23:35,310 तो यह माध्यम से जाना जा रहा है पूरी फाइल, है ना? 460 00:23:35,310 --> 00:23:36,710 461 00:23:36,710 --> 00:23:40,780 और फिर इसके द्वारा अद्यतन करने के लिए जा रहा है हर बाद चरित्र हो रही है. 462 00:23:40,780 --> 00:23:41,565 है ना? 463 00:23:41,565 --> 00:23:43,636 और यह क्या कर रहा है? 464 00:23:43,636 --> 00:23:44,760 दर्शक: लगा कि in-- 465 00:23:44,760 --> 00:23:46,741 466 00:23:46,741 --> 00:23:49,170 >> अध्यक्ष 1: Putchar प्रिंट अपने स्क्रीनसेवर के लिए. 467 00:23:49,170 --> 00:23:50,867 468 00:23:50,867 --> 00:23:51,950 [अश्राव्य] चरित्र. 469 00:23:51,950 --> 00:23:54,300 और फिर जब यह [अश्राव्य] इस फाइल को बंद हो जाएगा. 470 00:23:54,300 --> 00:23:57,370 >> दर्शक: तुम नहीं एक [ज़रूरत है? और? ?] 471 00:23:57,370 --> 00:23:59,005 >> अध्यक्ष 1: जरूरी नहीं है. 472 00:23:59,005 --> 00:24:01,480 मैं यह एक तरह से इस में निहित है, मतलब. 473 00:24:01,480 --> 00:24:06,780 यह लंबे समय के रूप में, हालांकि, रिटर्न क्योंकि यह इस पकड़ नहीं करता है, आप ठीक कह रहे हैं. 474 00:24:06,780 --> 00:24:07,940 475 00:24:07,940 --> 00:24:10,250 मैं यह शायद अच्छा है मतलब एक और को ऐसा करने का अभ्यास करेंगे. 476 00:24:10,250 --> 00:24:15,755 लेकिन एक और को हमेशा नहीं है आवश्यक विशेष रूप से 477 00:24:15,755 --> 00:24:17,610 आप कुछ है एक वापसी की तरह है जो 478 00:24:17,610 --> 00:24:20,640 इस मामले में यह फैल जाती है अगर इसका मतलब है कि यह अपने कार्यक्रम को समाप्त करने के लिए जा रहा है 479 00:24:20,640 --> 00:24:21,850 और यह इस पर कभी नहीं मिलेगा. 480 00:24:21,850 --> 00:24:23,030 481 00:24:23,030 --> 00:24:29,190 यह आप कर रहे हैं जहां मामले के लिए अधिक है जरूरी कुछ नहीं लौटा रहा. 482 00:24:29,190 --> 00:24:31,370 इस नहीं था क्योंकि अगर कुछ भी लौटने, 483 00:24:31,370 --> 00:24:34,430 यह, अगर यह सच थे कि इसका मतलब यह होगा इस के बाकी अभी भी चला जाएगा. 484 00:24:34,430 --> 00:24:36,138 और उस मामले में, आप एक झूठी चाहेगा. 485 00:24:36,138 --> 00:24:38,240 यह लौट रहा है, और अपने कार्यक्रम के अंत 486 00:24:38,240 --> 00:24:41,960 एक और सब से जरूरी नहीं है समय, संदर्भ पर निर्भर करता है. 487 00:24:41,960 --> 00:24:43,084 488 00:24:43,084 --> 00:24:44,375 याकूब, आप एक सवाल किया है? 489 00:24:44,375 --> 00:24:46,100 दर्शक: हाँ. 490 00:24:46,100 --> 00:24:49,300 तो अगली चरित्र मिलता fgetc करता है? 491 00:24:49,300 --> 00:24:50,734 चरित्र कैसे बढ़ जाता है? 492 00:24:50,734 --> 00:24:51,400 अध्यक्ष 1: हाँ. 493 00:24:51,400 --> 00:24:52,774 तो fgetc अगले वर्ण हो जाता है. 494 00:24:52,774 --> 00:24:54,140 495 00:24:54,140 --> 00:24:56,866 आप एक मायने में सी ++ तरह के बारे में सोच सकते हैं. 496 00:24:56,866 --> 00:24:58,350 >> दर्शक: EOF तो क्या था? 497 00:24:58,350 --> 00:25:00,877 >> अध्यक्ष 1: EOF फ़ाइल का अंत है. 498 00:25:00,877 --> 00:25:03,960 यह सिर्फ आपको पता है कि एक मार्कर है आप अपनी फाइल के अंत में कर रहे हैं कि. 499 00:25:03,960 --> 00:25:06,742 तो यह मुद्रित करने के लिए जा रहा है अपने मानक से बाहर करने के लिए. 500 00:25:06,742 --> 00:25:08,950 और उसके बाद बंद हो रहा है जब यह किया है फ़ाइल. 501 00:25:08,950 --> 00:25:10,700 और तो चलो चलते हैं अगले फ़ाइल, है ना? 502 00:25:10,700 --> 00:25:12,660 तो कुल मिलाकर, इस कार्यक्रम क्या करता है? 503 00:25:12,660 --> 00:25:15,402 504 00:25:15,402 --> 00:25:16,090 >> [अश्राव्य] 505 00:25:16,090 --> 00:25:16,900 >> अध्यक्ष 1: हाँ. 506 00:25:16,900 --> 00:25:18,770 यह सिर्फ वहाँ सब कुछ बाहर प्रिंट. 507 00:25:18,770 --> 00:25:23,270 तुम लोग कभी इस्तेमाल किया है अगर कैट तो कुछ file-- की और फिर नाम 508 00:25:23,270 --> 00:25:26,240 आप में से कोई भी अगर मैं नहीं जानता कभी अपने टर्मिनल पर जो कुछ किया. 509 00:25:26,240 --> 00:25:29,630 लेकिन क्या आपने कभी उपयोग करें आदेश CAT-- सी-ए-T-- 510 00:25:29,630 --> 00:25:31,880 और फिर जो भी फाइल आप यह there-- है 511 00:25:31,880 --> 00:25:37,260 अपने टर्मिनल, इसे बाहर प्रिंट जो कुछ बातों के लिए सुपर आसान हो सकता है. 512 00:25:37,260 --> 00:25:38,746 मैं यह एक बहुत का उपयोग करें. 513 00:25:38,746 --> 00:25:40,120 कि हर किसी को मतलब? 514 00:25:40,120 --> 00:25:41,480 515 00:25:41,480 --> 00:25:42,100 कूल? 516 00:25:42,100 --> 00:25:46,530 >> ठीक है तो अपने काम से या तो now-- अपने आप को या you-- आसपास के लोगों के साथ 517 00:25:46,530 --> 00:25:54,930 बस एक साधारण प्रोग्राम लिखने के लिए है कि बस "नमस्ते, दुनिया!" लिखेंगे 518 00:25:54,930 --> 00:25:56,255 एक फाइल करने के लिए बाहर. 519 00:25:56,255 --> 00:26:00,215 >> [अश्राव्य] 520 00:26:00,215 --> 00:26:56,210 521 00:26:56,210 --> 00:26:57,040 >> [अश्राव्य] 522 00:26:57,040 --> 00:26:59,248 >> अध्यक्ष: 1, जैसे मैं था मुझे लगता है कि बुरी तरह से पिछले हफ्ते करते हैं? 523 00:26:59,248 --> 00:27:00,201 524 00:27:00,201 --> 00:27:01,492 मैं यह है कि बुरा नहीं लगता था. 525 00:27:01,492 --> 00:27:02,479 526 00:27:02,479 --> 00:27:03,520 मैं आप सब यहाँ हो खुश हूँ. 527 00:27:03,520 --> 00:27:04,655 यह वास्तव में मुझे खुशी होती है. 528 00:27:04,655 --> 00:27:07,565 529 00:27:07,565 --> 00:27:10,160 मैं साधारण सुख की एक लड़की हूँ. 530 00:27:10,160 --> 00:27:11,688 मेरे अनुभाग में आती है जब मैं बस की तरह. 531 00:27:11,688 --> 00:27:13,830 532 00:27:13,830 --> 00:27:18,270 इसलिए मैं सिर्फ इस बात के लिए शुरू हो रही है तुम लोगों को हम एक साथ कोड कर सकते हैं. 533 00:27:18,270 --> 00:27:22,290 मैं पर किसी को भी डाल पसंद नहीं है जगह आप होना चाहते हैं जब तक. 534 00:27:22,290 --> 00:27:26,486 535 00:27:26,486 --> 00:27:30,086 >> दर्शक: प्रश्नोत्तरी के लिए करते हैं, हम एक प्रोग्राम लिखने के लिए है? 536 00:27:30,086 --> 00:27:33,260 >> अध्यक्ष 1: आप करने के लिए कहा जा सकता है हाथ से सरल कार्यक्रमों लिखें. 537 00:27:33,260 --> 00:27:35,940 538 00:27:35,940 --> 00:27:36,590 हां. 539 00:27:36,590 --> 00:27:38,510 >> दर्शक: प्रश्नोत्तरी सही, अगले सप्ताह है? 540 00:27:38,510 --> 00:27:40,108 >> अध्यक्ष 1: प्रश्नोत्तरी अगले बुधवार है. 541 00:27:40,108 --> 00:27:40,855 542 00:27:40,855 --> 00:27:43,730 यह एक सुंदर [वहाँ का मतलब है? सीएसई?] बाद में पार्टी ग्रेडिंग जो 543 00:27:43,730 --> 00:27:50,390 आप अपने स्कोर मिलेगा मतलब वापस क्या समय पर night-- कि? 544 00:27:50,390 --> 00:27:50,890 कौन जानता है? 545 00:27:50,890 --> 00:27:51,973 लेकिन यह है कि रात हो जाएगा. 546 00:27:51,973 --> 00:28:02,020 547 00:28:02,020 --> 00:28:02,855 >> ठीक है. 548 00:28:02,855 --> 00:28:04,250 हम यह कैसे शुरू करने के लिए करना चाहते हैं? 549 00:28:04,250 --> 00:28:07,964 550 00:28:07,964 --> 00:28:09,630 मैं तुम्हें इस के साथ एक hint-- शुरू होता है दे देंगे. 551 00:28:09,630 --> 00:28:11,455 >> दर्शक: आप एक फ़ाइल को खोलने के लिए है. 552 00:28:11,455 --> 00:28:12,250 >> अध्यक्ष 1: हाँ. 553 00:28:12,250 --> 00:28:14,060 तो क्या आप इस कॉल करने के लिए करना चाहते हैं? 554 00:28:14,060 --> 00:28:16,150 तुम सिर्फ "फाइल" यह कॉल करने के लिए करना चाहते हैं? 555 00:28:16,150 --> 00:28:17,480 चलो यह आसान बनाते हैं. 556 00:28:17,480 --> 00:28:26,752 तो क्या fopen-- हमारे होने जा रहा उत्पादन परीक्षण? 557 00:28:26,752 --> 00:28:36,130 "नमस्ते." कॉल 558 00:28:36,130 --> 00:28:37,810 और हमारी मोड क्या है? 559 00:28:37,810 --> 00:28:39,764 560 00:28:39,764 --> 00:28:41,055 हम इस फ़ाइल को क्या कर रहे हो? 561 00:28:41,055 --> 00:28:42,676 562 00:28:42,676 --> 00:28:43,500 >> दर्शक: पढ़ें. 563 00:28:43,500 --> 00:28:44,401 564 00:28:44,401 --> 00:28:44,900 लेखन. 565 00:28:44,900 --> 00:28:46,191 अध्यक्ष 1: हम यह करने के लिए लिख रहे हैं. 566 00:28:46,191 --> 00:28:47,360 567 00:28:47,360 --> 00:28:47,860 लवली. 568 00:28:47,860 --> 00:28:50,330 569 00:28:50,330 --> 00:28:52,860 ठीक है, तो हम अब इस फाइल है. 570 00:28:52,860 --> 00:28:54,920 571 00:28:54,920 --> 00:28:56,212 हम क्या करने की जरूरत है? 572 00:28:56,212 --> 00:28:57,420 दर्शक: यह शून्य है अगर जाँच करें. 573 00:28:57,420 --> 00:28:59,820 अध्यक्ष 1: यह बिल्कुल null-- है अगर जाँच करें. 574 00:28:59,820 --> 00:29:01,980 यही तो मैं सुनना पसंद है. 575 00:29:01,980 --> 00:29:05,930 यही कारण है कि विशेष रूप से, स्वत: होना चाहिए पर इस बात से बहुत ज्यादा. 576 00:29:05,930 --> 00:29:07,530 577 00:29:07,530 --> 00:29:10,950 आप segfaulting, आप शायद शुरू कहीं नल के लिए जाँच नहीं की थी. 578 00:29:10,950 --> 00:29:12,480 दस में से नौ बार, कि अपनी त्रुटि होने जा रहा. 579 00:29:12,480 --> 00:29:15,400 आप बस में मिल सकता है तो यह शून्य है अगर आदत, हमेशा की जांच 580 00:29:15,400 --> 00:29:18,150 अपने जीवन होने जा रहा है अच्छा और easy-- या आसान. 581 00:29:18,150 --> 00:29:19,480 >> तो यह शून्य है देखने के लिए जाँच. 582 00:29:19,480 --> 00:29:21,200 583 00:29:21,200 --> 00:29:24,820 यह शून्य नहीं है, जो तो धमाके के बराबर होती क्या है 584 00:29:24,820 --> 00:29:26,784 means-- यह वैध है null-- नहीं. 585 00:29:26,784 --> 00:29:27,700 हम क्या करना चाहते हैं? 586 00:29:27,700 --> 00:29:29,750 587 00:29:29,750 --> 00:29:31,570 हम सिर्फ प्रिंट करना चाहते हैं उस फ़ाइल को, सही? 588 00:29:31,570 --> 00:29:32,923 तो क्या हम प्रयोग करने जा रहे हैं? 589 00:29:32,923 --> 00:29:34,092 >> दर्शक: fprintf 590 00:29:34,092 --> 00:29:36,800 >> अध्यक्ष 1: Fprintf-- प्यारा. 591 00:29:36,800 --> 00:29:38,150 592 00:29:38,150 --> 00:29:44,000 और fprintf दो arguments-- जहां लेता है यह जा रहा है और क्या हम मुद्रित चाहते है. 593 00:29:44,000 --> 00:29:45,820 तो पहले एक क्या है? 594 00:29:45,820 --> 00:29:46,570 यह कहां जा रहा है? 595 00:29:46,570 --> 00:29:47,490 >> दर्शक: फ़ाइल. 596 00:29:47,490 --> 00:29:48,785 >> अध्यक्ष 1: यह फाइल करने के लिए जा रहा है. 597 00:29:48,785 --> 00:29:49,784 598 00:29:49,784 --> 00:29:50,950 और हम मुद्रित क्या चाहते हो? 599 00:29:50,950 --> 00:29:52,900 600 00:29:52,900 --> 00:29:58,065 "नमस्ते, दुनिया!" 601 00:29:58,065 --> 00:29:58,565 ठीक है. 602 00:29:58,565 --> 00:30:03,670 हम पिछले एक thing-- है यहाँ एक और बड़ा प्रतिमान. 603 00:30:03,670 --> 00:30:04,479 604 00:30:04,479 --> 00:30:05,145 दर्शकों को बंद. 605 00:30:05,145 --> 00:30:05,853 अध्यक्ष 1: बंद. 606 00:30:05,853 --> 00:30:09,990 607 00:30:09,990 --> 00:30:10,540 वहाँ तुम जाओ. 608 00:30:10,540 --> 00:30:13,384 >> दर्शक: यह हो रहा है फ़ाइल रिक्त है तो क्या होगा? 609 00:30:13,384 --> 00:30:15,050 अध्यक्ष 1: यह शून्य नहीं है अगर नहीं, यह है. 610 00:30:15,050 --> 00:30:16,881 दर्शक: ओह, अगर यह not-- ठीक है. 611 00:30:16,881 --> 00:30:21,728 612 00:30:21,728 --> 00:30:25,410 तो fopen और के लिए अंदर जाने कि दो तर्क, 613 00:30:25,410 --> 00:30:27,655 पहला तर्क फिर क्या मतलब है? 614 00:30:27,655 --> 00:30:30,392 >> अध्यक्ष 1: तर्क है सिर्फ फ़ाइल के नाम की तरह 615 00:30:30,392 --> 00:30:31,350 आप के पास जाना चाहते हैं. 616 00:30:31,350 --> 00:30:36,020 इस चलाता है के बाद तो, आप होगा "हैलो" कहा जाता है कुछ फ़ाइल 617 00:30:36,020 --> 00:30:38,320 कि यह भीतर "नमस्ते, दुनिया" था. 618 00:30:38,320 --> 00:30:38,820 बस इतना ही. 619 00:30:38,820 --> 00:30:39,500 बस नाम. 620 00:30:39,500 --> 00:30:42,685 621 00:30:42,685 --> 00:30:48,650 >> दर्शकों: और यह है के बाद से लेखन, फ़ाइल पहले से ही मौजूद नहीं है. 622 00:30:48,650 --> 00:30:49,675 आप क्या कहा है? 623 00:30:49,675 --> 00:30:50,410 >> अध्यक्ष 1: ठीक है. 624 00:30:50,410 --> 00:30:50,910 बिल्कुल सही. 625 00:30:50,910 --> 00:30:53,110 626 00:30:53,110 --> 00:30:55,839 "नमस्ते" एक फ़ाइल के रूप में हैं अभी तक अस्तित्व में नहीं है, यह बात है 627 00:30:55,839 --> 00:30:58,380 कहा जाता है एक फ़ाइल बनाने जा नमस्ते "और आप के लिए यह करने के लिए लिखें. 628 00:30:58,380 --> 00:30:59,631 629 00:30:59,631 --> 00:31:03,610 >> दर्शक: आप कह रहे हैं जब कार्यक्रम, फाइल करने के लिए लिखा था 630 00:31:03,610 --> 00:31:08,075 क्यों तुम लिखो "फाइल" के बजाय है फ़ाइल और fprintf-- का नाम 631 00:31:08,075 --> 00:31:13,600 >> अध्यक्ष 1: इस मामले में, क्योंकि हम सभी caps-- स्टार में है कि बड़ी FILE--, 632 00:31:13,600 --> 00:31:14,260 फ़ाइल. 633 00:31:14,260 --> 00:31:17,370 इसलिए यह फाइल करने के लिए एक सूचक है कि आप के बारे में बात कर रहे हैं. 634 00:31:17,370 --> 00:31:19,930 इस तरह से है कि हम सिर्फ इसे देखें. 635 00:31:19,930 --> 00:31:24,850 इस मामले में तो, आप file-- अहा के बारे में सोच सकते हैं, 636 00:31:24,850 --> 00:31:31,271 हम यहाँ this-- फ़ाइल का उपयोग कर सकते हैं "नमस्ते" का उद्घाटन करने के लिए संदर्भित करता है 637 00:31:31,271 --> 00:31:32,145 और यह लिख दे. 638 00:31:32,145 --> 00:31:34,728 >> दर्शक: हम एक "हैलो" डाल सकते हैं बजाय [? की बस?] च फ़ाइल? 639 00:31:34,728 --> 00:31:40,160 अध्यक्ष 1: नहीं, क्योंकि "हैलो" खुला और लेखनीय होने की जरूरत है. 640 00:31:40,160 --> 00:31:41,820 641 00:31:41,820 --> 00:31:45,980 यहाँ फ़ाइल किसी तरह है ठीक कहते हैं कि डेसिग्नेटर, हम 642 00:31:45,980 --> 00:31:49,190 इस file-- hello-- है हम देख रहे हैं कि. 643 00:31:49,190 --> 00:31:50,680 यह खोल दिया गया है. 644 00:31:50,680 --> 00:31:52,140 और हम यह करने के लिए लिखने जा रहे हैं. 645 00:31:52,140 --> 00:31:55,130 आप बस "नमस्ते" का उपयोग करते हैं, कि उस में समझाया है. 646 00:31:55,130 --> 00:31:56,846 तो यह बाहर बेकार जा रहा है. 647 00:31:56,846 --> 00:31:58,590 648 00:31:58,590 --> 00:32:00,300 मैं आपको यह नाम दिया जा सकता था, मतलब. 649 00:32:00,300 --> 00:32:03,960 आप फाइल किया जा सकता है सितारा, "नमस्ते", कि बराबर होती है. 650 00:32:03,960 --> 00:32:07,840 लेकिन पूरी बात आपको लगता है कि है आदेश में एक फ़ाइल सितारा सूचक जरूरत 651 00:32:07,840 --> 00:32:09,281 इन कार्यों का उपयोग करने में सक्षम हो. 652 00:32:09,281 --> 00:32:11,280 दर्शक: आप कर सकते हैं फ़ाइल, सितारा, फ़ाइल, "हैलो" 653 00:32:11,280 --> 00:32:13,113 या तुम डाल दिया है यह द्वारा, फ़ाइल सितारा फाइल? 654 00:32:13,113 --> 00:32:16,330 अध्यक्ष 1: तुम सकता है "नमस्ते.", फ़ाइल, सितारा करना 655 00:32:16,330 --> 00:32:19,790 आप के लिए इसे बदल सकते हैं जो भी नाम आप चाहते हैं. 656 00:32:19,790 --> 00:32:22,114 यह पूरी तरह से मनमाना है उस नाम क्या है. 657 00:32:22,114 --> 00:32:23,179 658 00:32:23,179 --> 00:32:24,220 आप इसे कुछ भी नाम दे सकते हैं. 659 00:32:24,220 --> 00:32:25,501 660 00:32:25,501 --> 00:32:28,020 अगर तुम चाहते थे, स्पेगेटी उड़ान यह नाम है. 661 00:32:28,020 --> 00:32:29,690 >> दर्शक: के लिए उद्धरण में "डब्ल्यू" क्या है? 662 00:32:29,690 --> 00:32:31,540 >> अध्यक्ष 1: "डब्ल्यू" सिर्फ मोड है. 663 00:32:31,540 --> 00:32:33,170 इसलिए हम इस फ़ाइल के लिए लिख रहे हैं. 664 00:32:33,170 --> 00:32:34,410 665 00:32:34,410 --> 00:32:35,320 हर कोई अच्छा? 666 00:32:35,320 --> 00:32:36,227 स्पष्ट है? 667 00:32:36,227 --> 00:32:36,981 हां. 668 00:32:36,981 --> 00:32:40,365 >> दर्शक: यह इस लिखता है तो जब जहां हम तो उस फ़ाइल को मिल रहा है, फाइल? 669 00:32:40,365 --> 00:32:43,820 >> अध्यक्ष 1: यह वही में होगा आप वर्तमान में कर रहे हैं कि निर्देशिका. 670 00:32:43,820 --> 00:32:45,650 671 00:32:45,650 --> 00:32:48,880 आप pset तीन में रहे हैं और आप अपने pset भीतर यह, भागो 672 00:32:48,880 --> 00:32:52,600 तीन फ़ोल्डर होने जा रहा है कहा जाता है इस फ़ाइल "नमस्ते." 673 00:32:52,600 --> 00:32:53,160 कूल? 674 00:32:53,160 --> 00:32:53,757 हर कोई अच्छा? 675 00:32:53,757 --> 00:32:55,840 आप सब कर रहे हैं मुझे लगता है जो महान है, यह हो रही है. 676 00:32:55,840 --> 00:32:57,290 677 00:32:57,290 --> 00:32:57,790 ठीक. 678 00:32:57,790 --> 00:33:05,960 तो वापस अपने स्लाइड show-- को चीजें काम जब मैं प्यार करता हूँ. 679 00:33:05,960 --> 00:33:08,674 ठीक है, तुम लोग उत्साहित pointers-- हैं? 680 00:33:08,674 --> 00:33:09,465 सूचक महान हैं. 681 00:33:09,465 --> 00:33:11,581 682 00:33:11,581 --> 00:33:13,580 वे थोड़ा ले अपने सिर के चारों ओर लपेट लिए. 683 00:33:13,580 --> 00:33:15,288 यह मेरा दूसरा साल है शिक्षण संकेत दिए. 684 00:33:15,288 --> 00:33:16,850 और मुझे लगता है मैं अंत में यह मिल गया है. 685 00:33:16,850 --> 00:33:18,650 तुम संघर्ष तो, अगर यह ठीक है. 686 00:33:18,650 --> 00:33:19,940 687 00:33:19,940 --> 00:33:24,070 मैंने पहले कहा, चित्र ड्राइंग , सीएस में चीजों के साथ एक बहुत मदद मिलती है 688 00:33:24,070 --> 00:33:27,400 जितना मैं लोगों को देते हैं लगता है के रूप में ओह, हम एक कंप्यूटर पर रहे सोचने के लिए. 689 00:33:27,400 --> 00:33:28,399 हम सिर्फ कोड होना चाहिए. 690 00:33:28,399 --> 00:33:30,190 No-- ड्राइंग तस्वीरें वास्तव में आपकी मदद करेगा. 691 00:33:30,190 --> 00:33:32,773 और मैं वास्तव में करने के लिए प्रोत्साहित आपके kindergartner पक्ष में नल 692 00:33:32,773 --> 00:33:35,010 और crayons बाहर लाना या मार्कर और ड्रा. 693 00:33:35,010 --> 00:33:36,110 यह आपकी मदद करेगा. 694 00:33:36,110 --> 00:33:39,380 और अगर आप कार्यालय समय में मुझे देखते हैं, मैं कागज के ढेर के चारों ओर ले जाने दिया जाएगा 695 00:33:39,380 --> 00:33:41,580 कलम चीजें बाहर ड्राइंग के साथ. 696 00:33:41,580 --> 00:33:44,370 >> इसलिए विशेष रूप से तस्वीरें खींचना pointers--. 697 00:33:44,370 --> 00:33:47,970 और मुझे लगता है हम वास्तव में करने के लिए जा रहे हैं यकीन यहाँ भी कुछ तस्वीरें खींचने हो. 698 00:33:47,970 --> 00:33:51,270 >> तो आप लोग सब, Binky देखने को मिला इस शांत claymation बात. 699 00:33:51,270 --> 00:33:54,720 और हम इसे जब वास्तव में अजीब लगता है वह टुकड़ों का एक गुच्छा में फट जाएगा. 700 00:33:54,720 --> 00:33:56,280 701 00:33:56,280 --> 00:33:57,755 यह वर्ग के लिए कुछ हास्य राहत की बात है. 702 00:33:57,755 --> 00:34:02,140 703 00:34:02,140 --> 00:34:05,900 सी [अश्राव्य] इस महान क्षमता स्मृति को नियंत्रित करने में सक्षम हो. 704 00:34:05,900 --> 00:34:10,090 और यह कि वास्तव में चीजों में से एक है यह एक ऐसी शक्तिशाली भाषा बना देता है. 705 00:34:10,090 --> 00:34:13,469 लेकिन महान शक्ति के साथ आता है बड़ी जिम्मेदारी. 706 00:34:13,469 --> 00:34:16,230 और पागल बातें हो सकता है आप सावधान नहीं हैं. 707 00:34:16,230 --> 00:34:18,560 तो आप उपयोग कर रहे हैं जब संकेत, आप बनाना चाहते हैं 708 00:34:18,560 --> 00:34:21,440 सुनिश्चित करें कि आप वास्तव में समझने वास्तव में आप क्या कर रहे हैं. 709 00:34:21,440 --> 00:34:25,530 की उम्मीद है कि अगले थोड़ा सा बार जब आप वास्तव में समझने में मदद मिलेगी 710 00:34:25,530 --> 00:34:27,850 संकेत, उन्हें कैसे उपयोग करने के लिए, और उन्हें हेरफेर करने के लिए कैसे. 711 00:34:27,850 --> 00:34:29,170 712 00:34:29,170 --> 00:34:33,460 >> इसलिए मुझे लगता है हमें यकीन है कि memory-- पहले इस चित्र देखा. 713 00:34:33,460 --> 00:34:38,540 तो इस का सिर्फ एक साधारण आरेख है कैसे चीजें स्मृति संग्रहित किया जा सकता है. 714 00:34:38,540 --> 00:34:43,145 तो आप मूल रूप से इन किया एक बाइट ब्लॉक की भारी सरणियों 715 00:34:43,145 --> 00:34:46,000 हम here-- मामूली क्या है एक-एक समय से वेतन वृद्धि. 716 00:34:46,000 --> 00:34:51,810 यह हेक्स में है [अश्राव्य] तो आठ-बिट ब्लॉक. 717 00:34:51,810 --> 00:34:55,510 और हर ब्लॉक जुड़ा हुआ है कुछ हेक्साडेसिमल पते के साथ. 718 00:34:55,510 --> 00:34:58,750 तुमने कभी देखा तो अगर 0 x, कि सिर्फ notating है 719 00:34:58,750 --> 00:35:00,670 यह एक हेक्साडेसिमल पता है कि. 720 00:35:00,670 --> 00:35:03,970 आप इसका मतलब यह मान सकते हैं स्मृति में कुछ पता. 721 00:35:03,970 --> 00:35:06,935 हम स्मृति पते के बारे में बात कर रहे हैं जब भी आप हेक्साडेसिमल देखते हैं. 722 00:35:06,935 --> 00:35:10,420 723 00:35:10,420 --> 00:35:14,630 >> हम ints चर रहे है, तैरता कि दुकान चर रहे हैं. 724 00:35:14,630 --> 00:35:16,260 Ints दुकान ints तो. 725 00:35:16,260 --> 00:35:17,430 तैरता दुकान मंगाई. 726 00:35:17,430 --> 00:35:20,260 तो हम भी संकेत दिए है उस दुकान स्मृति पते. 727 00:35:20,260 --> 00:35:21,660 यही मानचित्रण का एक प्रकार है. 728 00:35:21,660 --> 00:35:24,240 सूचक विशेष रूप से कर रहे हैं स्मृति पते के लिए. 729 00:35:24,240 --> 00:35:25,780 730 00:35:25,780 --> 00:35:27,292 इसलिए कि वहाँ अपने प्रकार की तरह है. 731 00:35:27,292 --> 00:35:29,550 732 00:35:29,550 --> 00:35:34,470 आपका उपकरण 32-बिट, जो इसका मतलब है अपनी स्मृति पते चार बाइट्स है कि. 733 00:35:34,470 --> 00:35:37,830 तो आपको लगता है कि किसी भी सूचक भी चार बाइट्स होने जा रहा है. 734 00:35:37,830 --> 00:35:43,200 या यह चार बाइट्स है यदि नहीं तो, स्मृति चार बाइट्स है. 735 00:35:43,200 --> 00:35:44,790 सूचक दुकान स्मृति. 736 00:35:44,790 --> 00:35:46,430 इसलिए, वे चार बाइट्स कर रहे हैं. 737 00:35:46,430 --> 00:35:48,460 Cool-- कि बस को मजबूत करना चाहते हैं. 738 00:35:48,460 --> 00:35:50,120 739 00:35:50,120 --> 00:35:52,220 >> अब आप इस हास्य मिलना चाहिए. 740 00:35:52,220 --> 00:35:55,040 मैं आप में से कितने पता नहीं है xkcd प्रशंसक रहे हैं, लेकिन मैं xkcd प्यार. 741 00:35:55,040 --> 00:35:55,780 यह बहुत अच्छा है. 742 00:35:55,780 --> 00:35:57,290 743 00:35:57,290 --> 00:35:57,790 >> ठीक है. 744 00:35:57,790 --> 00:36:01,640 जैसा कि मैंने कहा तो यह है, pointers-- बनाने बहुत ज्यादा कुछ और की तरह. 745 00:36:01,640 --> 00:36:02,930 आप एक प्रकार है. 746 00:36:02,930 --> 00:36:04,050 आप एक नाम है. 747 00:36:04,050 --> 00:36:04,810 है ना? 748 00:36:04,810 --> 00:36:10,410 यही कारण है कि हम वहाँ क्या है. [? हेक्स?] सितारा, यह एक सूचक है मतलब 749 00:36:10,410 --> 00:36:12,250 और फिर आप इसे कॉल करना चाहते हो. 750 00:36:12,250 --> 00:36:15,770 तो प्रकार का प्रतिनिधित्व करता है आप स्टोर कर सकते हैं क्या. 751 00:36:15,770 --> 00:36:16,850 752 00:36:16,850 --> 00:36:17,990 ठीक है? 753 00:36:17,990 --> 00:36:24,350 उसी तरह है कि हम ints करते हैं, हम हम वहाँ एक पूर्णांक भंडारण कर रहे हैं पता है. 754 00:36:24,350 --> 00:36:25,990 755 00:36:25,990 --> 00:36:30,280 एक संकेतक के साथ, यह एक स्मृति पता रखती है. 756 00:36:30,280 --> 00:36:34,240 लेकिन क्या यह मतलब है यहाँ कहाँ है that-- है एक ड्राइंग काम में आने वाला है. 757 00:36:34,240 --> 00:36:36,170 758 00:36:36,170 --> 00:36:45,980 तो इस मामले में, हम हैं कुछ के चार हम कहते हैं value--. 759 00:36:45,980 --> 00:36:49,306 चार पते से एक पर है. 760 00:36:49,306 --> 00:36:49,805 ठीक है? 761 00:36:49,805 --> 00:36:51,550 762 00:36:51,550 --> 00:36:56,170 >> यह पहली बार यहाँ का मतलब यह एक सूचक 2x है कि. 763 00:36:56,170 --> 00:36:56,740 है ना? 764 00:36:56,740 --> 00:36:57,628 यह कुछ सूचक एक्स. 765 00:36:57,628 --> 00:36:58,852 766 00:36:58,852 --> 00:37:00,940 एक्स, जो भी कुछ हो सकता है. 767 00:37:00,940 --> 00:37:01,960 768 00:37:01,960 --> 00:37:05,130 जो भी एक्स एक्स चार का कहना है कि is--. 769 00:37:05,130 --> 00:37:07,280 यह स्टोर करने के लिए जा रहा है यहाँ स्मृति पता. 770 00:37:07,280 --> 00:37:12,260 तो पूर्णांक, सितारा, x-- यह है memory-- में कुछ अन्य स्लॉट 771 00:37:12,260 --> 00:37:13,590 कौन है यह क्या जानता है. 772 00:37:13,590 --> 00:37:15,430 लेकिन यह यहाँ एक पते स्टोर करने के लिए जा रहा है. 773 00:37:15,430 --> 00:37:27,040 तो इस like-- होगा इस मामले में, जो भी हो, 774 00:37:27,040 --> 00:37:32,630 संग्रहीत किया जाता है जो कुछ 0x1-- में संग्रहीत किया जाता है हमारे सूचक रखती है उस पते पर, 775 00:37:32,630 --> 00:37:35,280 के साथ मैच करने के लिए है क्या हम नामित किया है. 776 00:37:35,280 --> 00:37:40,330 तो 0x1 में, इस मामले में, इस एक्स है. 777 00:37:40,330 --> 00:37:42,500 778 00:37:42,500 --> 00:37:49,340 यह केवल कभी एक हो सकता है हम यह प्रयोग कर रहे हैं, जबकि इंट. 779 00:37:49,340 --> 00:37:52,950 >> इसी तरह, हम है अगर एक और 1 वर्ष, जो कुछ 780 00:37:52,950 --> 00:37:59,130 एक वाई है साथ पते संग्रहीत किया जाता है जेड के साथ एक char-- एक ही बात हो. 781 00:37:59,130 --> 00:38:05,840 उसी तरह, जब भी आप कोशिश करते हैं और intx 0.4 के बराबर होती करते हैं, 782 00:38:05,840 --> 00:38:09,275 यह तुम पर चिल्लाना और होने जा रहा है कोई तरह, आप आप एक पूर्णांक चाहता था. 783 00:38:09,275 --> 00:38:10,525 यह एक पूर्णांक माना जाता है. 784 00:38:10,525 --> 00:38:11,900 यह एक नाव बनाने की कोशिश कर बंद करो. 785 00:38:11,900 --> 00:38:14,150 >> तो बातें वे क्या बनना चाहते हो. 786 00:38:14,150 --> 00:38:15,159 787 00:38:15,159 --> 00:38:16,200 चीजें खुद को रहने दो. 788 00:38:16,200 --> 00:38:19,380 789 00:38:19,380 --> 00:38:23,450 तो बड़ी बात बस है सूचक के जो भी प्रकार 790 00:38:23,450 --> 00:38:26,101 यह कि केवल है, है तुम वहाँ स्टोर कर सकते हैं बात. 791 00:38:26,101 --> 00:38:26,600 ठीक है? 792 00:38:26,600 --> 00:38:27,910 793 00:38:27,910 --> 00:38:31,160 अभ्यास के साथ, साथ ही पिछले हफ्ते, सब कुछ 794 00:38:31,160 --> 00:38:32,817 वास्तव में इस तरह का सार लगता है. 795 00:38:32,817 --> 00:38:34,150 हम कुछ अभ्यास करने जा रहे हैं. 796 00:38:34,150 --> 00:38:36,760 यह और अधिक समझ बनाना चाहिए. 797 00:38:36,760 --> 00:38:44,580 >> इसलिए संदर्भित और यह dereferencing-- वास्तव में महत्वपूर्ण इन सीधे प्राप्त करने के लिए. 798 00:38:44,580 --> 00:38:46,630 मैं अभी भी ताज़ा करने के लिए है हर अब और फिर. 799 00:38:46,630 --> 00:38:48,450 और मुझे लगता है मैं जो एक चाहता है, इंतजार की तरह हूँ? 800 00:38:48,450 --> 00:38:56,080 तो एम्परसेंड वास्तव में दे देंगे आप के संदर्भ या पता. 801 00:38:56,080 --> 00:39:00,100 तो यह संबोधन में रिटर्न जो चर की स्मृति संग्रहीत है. 802 00:39:00,100 --> 00:39:01,170 803 00:39:01,170 --> 00:39:07,020 तो यह वास्तव में आप करने के लिए वापस जा रहा है एक हेक्साडेसिमल, यह dereferencing जबकि 804 00:39:07,020 --> 00:39:10,641 वास्तव में तुम्हें देने के लिए जा रहा है वहाँ संग्रहीत डेटा. 805 00:39:10,641 --> 00:39:11,140 ठीक है? 806 00:39:11,140 --> 00:39:12,680 807 00:39:12,680 --> 00:39:16,060 तो हम एक उदाहरण को देखने के लिए जा रहे हैं वास्तव में तेजी, या वास्तव में अगले. 808 00:39:16,060 --> 00:39:18,050 809 00:39:18,050 --> 00:39:19,150 >> ठीक. 810 00:39:19,150 --> 00:39:21,790 इसलिए हम वास्तव में सोचना है ध्यान से इस बारे में. 811 00:39:21,790 --> 00:39:23,860 यहाँ तो हम कुछ पूर्णांक एक्स है. 812 00:39:23,860 --> 00:39:26,485 मैं कोशिश करते हैं और इस आकर्षित करने के लिए जा रहा हूँ मेरी क्षमताओं का सबसे अच्छा करने के लिए बाहर. 813 00:39:26,485 --> 00:39:30,230 814 00:39:30,230 --> 00:39:32,410 इसलिए हम इस स्लॉट एक्स के लिए जा रहे हैं. 815 00:39:32,410 --> 00:39:35,850 816 00:39:35,850 --> 00:39:37,315 और यह पांच के भंडारण है. 817 00:39:37,315 --> 00:39:38,640 818 00:39:38,640 --> 00:39:40,090 इसका पता 0x4 है. 819 00:39:40,090 --> 00:39:41,920 820 00:39:41,920 --> 00:39:43,160 कूल? 821 00:39:43,160 --> 00:39:44,100 सब अच्छा है. 822 00:39:44,100 --> 00:39:45,470 >> तो अब हम इस सूचक है. 823 00:39:45,470 --> 00:39:46,916 824 00:39:46,916 --> 00:39:47,990 यह यहां समाप्त हो गया था. 825 00:39:47,990 --> 00:39:52,130 826 00:39:52,130 --> 00:39:57,560 और एम्परसेंड हमें देता है कुछ के पते. 827 00:39:57,560 --> 00:40:00,780 इसलिए, इस मामले में, यह एक्स का पता है. 828 00:40:00,780 --> 00:40:01,875 एक्स के पता क्या है? 829 00:40:01,875 --> 00:40:05,660 830 00:40:05,660 --> 00:40:12,590 04-- और इस सूचक 0x08 पर है. 831 00:40:12,590 --> 00:40:14,490 832 00:40:14,490 --> 00:40:14,990 कूल? 833 00:40:14,990 --> 00:40:16,570 834 00:40:16,570 --> 00:40:21,570 इसलिए आप इस बारे में सोच सकते हैं सूचक, 04, बस यहाँ से अधिक अंक. 835 00:40:21,570 --> 00:40:22,840 836 00:40:22,840 --> 00:40:25,740 और वे संकेत कहते हैं हम इस मामले में और अधिक मिलता है, क्योंकि 837 00:40:25,740 --> 00:40:28,450 आप चीजों की ओर इशारा करते देखने के लिए जा रहे हैं. 838 00:40:28,450 --> 00:40:31,470 और एक ब्लॉक एक और की ओर इशारा ब्लॉक एक बहुत अधिक मतलब होगा. 839 00:40:31,470 --> 00:40:32,760 840 00:40:32,760 --> 00:40:33,890 यहाँ तो दो हैं. 841 00:40:33,890 --> 00:40:38,230 और फिर हम कुछ है what-- 0x0c है जो प्रतिलिपि,. 842 00:40:38,230 --> 00:40:41,290 843 00:40:41,290 --> 00:40:43,420 और यह जा रहा है हमारे संकेतक भिन्नता. 844 00:40:43,420 --> 00:40:46,790 >> तो क्या यह कह रहा है ठीक है, यहाँ हमारे सूचक है. 845 00:40:46,790 --> 00:40:53,090 यह भंडार मूल्य क्या 0x04 है, और यह इस पते पर जाना है कह रहा है 846 00:40:53,090 --> 00:40:54,300 और इसमें क्या मुझे बताओ. 847 00:40:54,300 --> 00:40:55,520 848 00:40:55,520 --> 00:40:57,710 इसलिए कि प्रभावी ढंग से है इस तीर क्या कर रही है. 849 00:40:57,710 --> 00:40:58,750 850 00:40:58,750 --> 00:41:01,280 आप अपने स्टार की तरह इस के बारे में सोच सकते हैं. 851 00:41:01,280 --> 00:41:05,410 हम सितारा करते हैं तो जब ठीक है, यह पालन का मतलब है. 852 00:41:05,410 --> 00:41:06,810 इस पते पर जाएं. 853 00:41:06,810 --> 00:41:11,430 और ये सिर्फ निम्नलिखित मूल रूप से है इस स्मृति हिस्सा करने के लिए इस तीर. 854 00:41:11,430 --> 00:41:15,380 और 5 है, जो इसमें क्या हमें दे. 855 00:41:15,380 --> 00:41:18,840 हमारी नकल 5 के बराबर है क्यों यह है. 856 00:41:18,840 --> 00:41:20,120 कि मतलब? 857 00:41:20,120 --> 00:41:22,769 किसी के माध्यम से जाने के लिए मेरी जरूरत है कि फिर से, या अधिक धीरे? 858 00:41:22,769 --> 00:41:24,560 आप मुझे जाने के लिए चाहते हैं इसे एक बार के माध्यम से? 859 00:41:24,560 --> 00:41:25,060 ठीक. 860 00:41:25,060 --> 00:41:27,549 861 00:41:27,549 --> 00:41:28,840 हम इसे फिर से redraw करने के लिए जा रहे हैं. 862 00:41:28,840 --> 00:41:31,930 863 00:41:31,930 --> 00:41:37,205 हम शुरू करते हैं, हम सब हमारे पास सहमत एक चर है कि स्मृति की कुछ हिस्सा 864 00:41:37,205 --> 00:41:40,890 हम 5 के बराबर सेट कि एक्स. 865 00:41:40,890 --> 00:41:42,910 यह स्मृति में है, जहां हम नियंत्रण नहीं है. 866 00:41:42,910 --> 00:41:45,520 इसलिए इस जगह बस है मनमाने ढंग से आवंटित किया. 867 00:41:45,520 --> 00:41:47,770 868 00:41:47,770 --> 00:41:48,731 वहाँ अच्छा है? 869 00:41:48,731 --> 00:41:49,230 ठीक. 870 00:41:49,230 --> 00:41:50,420 871 00:41:50,420 --> 00:41:53,330 तो फिर हम एक पूर्णांक के लिए एक संकेत को प्रारंभ. 872 00:41:53,330 --> 00:41:56,900 यह बात करने के लिए बात करने के लिए अनुमति दी है क्यों है एक्स हम यहाँ में एक पूर्णांक है क्योंकि. 873 00:41:56,900 --> 00:42:00,840 हम का एक और हिस्सा है स्मृति क्योंकि इस सूचक 874 00:42:00,840 --> 00:42:03,485 अभी कुछ और की तरह एक चर रहा है. 875 00:42:03,485 --> 00:42:06,615 यह मनमाने ढंग से आवंटित किया गया है स्मृति में कुछ जगह. 876 00:42:06,615 --> 00:42:07,630 877 00:42:07,630 --> 00:42:10,830 और क्या यह भंडार एक्स का पता है. 878 00:42:10,830 --> 00:42:13,200 एम्परसेंड एक्स के पते का मतलब है. 879 00:42:13,200 --> 00:42:14,575 तो एक्स का पता क्या है? 880 00:42:14,575 --> 00:42:19,179 881 00:42:19,179 --> 00:42:20,614 >> दर्शक: यह zero-- है 882 00:42:20,614 --> 00:42:21,280 अध्यक्ष 1: 0x04. 883 00:42:21,280 --> 00:42:24,350 884 00:42:24,350 --> 00:42:25,940 तो then-- पिछले एक. 885 00:42:25,940 --> 00:42:30,650 हम फिर से कुछ copy-- है सिर्फ एक चर. 886 00:42:30,650 --> 00:42:32,520 तो चलो कुछ मनमाने ढंग से जगह आवंटित करते हैं. 887 00:42:32,520 --> 00:42:35,260 888 00:42:35,260 --> 00:42:38,080 हमारे संकेतक भिन्नता और हम. 889 00:42:38,080 --> 00:42:42,490 स्टार के लिए जाने का मतलब पता मेरी सूचक में संग्रहीत. 890 00:42:42,490 --> 00:42:44,480 वहाँ मुझे बताओ कि क्या. 891 00:42:44,480 --> 00:42:47,290 तो पता संग्रहीत हमारे सूचक में 0x04 है. 892 00:42:47,290 --> 00:42:49,070 893 00:42:49,070 --> 00:42:51,310 तो हम उस पते पर जाना. 894 00:42:51,310 --> 00:42:52,402 895 00:42:52,402 --> 00:42:54,590 यह उस पते की ओर इशारा कर रहा है. 896 00:42:54,590 --> 00:42:57,481 इस स्मृति ब्लॉक के अंदर क्या है? 897 00:42:57,481 --> 00:42:57,980 यह एक पाँच है. 898 00:42:57,980 --> 00:42:59,210 899 00:42:59,210 --> 00:43:01,650 इसलिए कि हम अपने प्रतिलिपि आवंटित है. 900 00:43:01,650 --> 00:43:03,430 901 00:43:03,430 --> 00:43:04,860 हर कोई अच्छा? 902 00:43:04,860 --> 00:43:05,360 कूल. 903 00:43:05,360 --> 00:43:07,010 904 00:43:07,010 --> 00:43:08,330 Again-- तस्वीरें. 905 00:43:08,330 --> 00:43:19,750 906 00:43:19,750 --> 00:43:25,200 >> तो मैं हूँ here-- मूल्यों ट्रैकिंग आप लोग इस बारे में सोचते हैं करने के लिए जा रहा है. 907 00:43:25,200 --> 00:43:26,550 908 00:43:26,550 --> 00:43:27,750 हम एक और तस्वीर आकर्षित कर सकते हैं. 909 00:43:27,750 --> 00:43:31,260 लेकिन मैं आप कोशिश करते हैं और कारण करना चाहते हैं एक मिनट के लिए अपने दम पर इस के माध्यम से. 910 00:43:31,260 --> 00:44:01,430 911 00:44:01,430 --> 00:44:04,149 >> वे देना नहीं था हमें एक उदाहरण के पते, 912 00:44:04,149 --> 00:44:06,940 मैं सिर्फ एम्परसेंड x-- क्या करने जा रहा हूँ जो घर यह ड्राइव की मदद करनी चाहिए. 913 00:44:06,940 --> 00:44:07,950 एम्परसेंड पते का मतलब है. 914 00:44:07,950 --> 00:44:09,540 915 00:44:09,540 --> 00:44:12,360 >> पहले एक, हर किसी में तो पहली पंक्ति के साथ चलते हैं. 916 00:44:12,360 --> 00:44:15,690 कुछ एक्स सेट का five-- कुछ स्मृति में यादृच्छिक स्लॉट. 917 00:44:15,690 --> 00:44:17,660 918 00:44:17,660 --> 00:44:23,200 इंटरनैशनल स्टार सूचक बराबर है एक्स के पते पर, सही? 919 00:44:23,200 --> 00:44:28,180 इंटरनैशनल स्टार सूचक बनाता है इस ब्लॉक, यह सूचक कहता है, 920 00:44:28,180 --> 00:44:30,650 और एक्स के पते पर प्रदान करती है. 921 00:44:30,650 --> 00:44:32,750 922 00:44:32,750 --> 00:44:34,230 मैं एम्परसेंड्स पर भयानक रहा हूँ. 923 00:44:34,230 --> 00:44:36,460 924 00:44:36,460 --> 00:44:40,550 >> अब हम क्या कर रहे हैं कि हम कहना है ठीक है, हमारे संकेतक भिन्नता. 925 00:44:40,550 --> 00:44:42,760 तो हम ठीक है, हमारे सूचक में क्या जाने? 926 00:44:42,760 --> 00:44:44,820 यह एम्परसेंड एक्स. 927 00:44:44,820 --> 00:44:49,400 एम्परसेंड एक्स के पास जाओ और इसे पुन: असाइन. 928 00:44:49,400 --> 00:44:51,620 929 00:44:51,620 --> 00:44:57,480 >> तो अब, एम्परसेंड एक्स 35 होने जा रहा है. 930 00:44:57,480 --> 00:45:01,540 931 00:45:01,540 --> 00:45:05,174 तो बुनियादी तौर पर, आप जब हो dereferencing, आप ठीक है जाओ. 932 00:45:05,174 --> 00:45:07,090 आप ड्राइंग हो जा रहे हैं इस तरह तस्वीरें. 933 00:45:07,090 --> 00:45:09,423 आप ड्राइंग हो जा रहे हैं यह वह जगह है जहाँ पर अपने तीर. 934 00:45:09,423 --> 00:45:16,030 तो स्मृति में इस स्लॉट के लिए जा सकते हैं और या तो मुझे लगता है कि मूल्य वापस दे, या यह परिवर्तन. 935 00:45:16,030 --> 00:45:21,620 इस मामले में, क्योंकि हम इस पर रहे , हम यह बताए रहे मूल्य 35 हो. 936 00:45:21,620 --> 00:45:24,700 अंतिम में जबकि एक, अगर तुम नोटिस, हम 937 00:45:24,700 --> 00:45:27,680 क्या था बताए थे यहाँ कुछ और करने में. 938 00:45:27,680 --> 00:45:30,450 939 00:45:30,450 --> 00:45:32,245 >> इसलिए वे इस भयानक टेबल है. 940 00:45:32,245 --> 00:45:35,000 941 00:45:35,000 --> 00:45:36,890 ऐसा लगता है कि बुरा नहीं है. 942 00:45:36,890 --> 00:45:37,970 तुम लोग उस पर काम करते हैं. 943 00:45:37,970 --> 00:45:39,640 मैं बोर्ड पर इसे बाहर आकर्षित करने के लिए जा रहा हूँ. 944 00:45:39,640 --> 00:45:41,306 हम ठीक है, यह एक साथ बाहर भरने के लिए जा रहे हैं? 945 00:45:41,306 --> 00:45:42,290 946 00:45:42,290 --> 00:45:45,530 तो कुछ कागज, हड़पने हड़पने एक साथी, काम शुरू. 947 00:45:45,530 --> 00:45:53,897 948 00:45:53,897 --> 00:45:55,605 मैं एक पाने के लिए जा रहा हूँ चाक का बड़ा टुकड़ा. 949 00:45:55,605 --> 00:45:56,624 950 00:45:56,624 --> 00:45:58,150 यह एक बहुत होने जा रहा है क्योंकि. 951 00:45:58,150 --> 00:45:59,410 952 00:45:59,410 --> 00:45:59,910 ठीक. 953 00:45:59,910 --> 00:48:08,567 954 00:48:08,567 --> 00:48:09,150 प्रोफेसर: ठीक है. 955 00:48:09,150 --> 00:48:11,599 956 00:48:11,599 --> 00:48:12,890 की पहली पंक्ति के साथ शुरू करते हैं. 957 00:48:12,890 --> 00:48:14,070 958 00:48:14,070 --> 00:48:16,970 हम तो, वहाँ आप लोग शुरू करेंगे शायद कुछ और के माध्यम से काम कर सकते हैं. 959 00:48:16,970 --> 00:48:17,870 ठीक. 960 00:48:17,870 --> 00:48:19,810 एक एक क्या है तो बी टाइम्स सी के बराबर होती है? 961 00:48:19,810 --> 00:48:21,420 962 00:48:21,420 --> 00:48:23,260 यह एक चाल सवाल नहीं है, मैं वादा करता हूँ. 963 00:48:23,260 --> 00:48:24,440 >> छात्र: 4 बार 5. 964 00:48:24,440 --> 00:48:25,420 >> प्रोफेसर: 4 बार 5. 965 00:48:25,420 --> 00:48:25,920 20. 966 00:48:25,920 --> 00:48:26,730 तो ख क्या है? 967 00:48:26,730 --> 00:48:27,921 968 00:48:27,921 --> 00:48:28,420 छात्र: 4. 969 00:48:28,420 --> 00:48:30,204 970 00:48:30,204 --> 00:48:31,043 >> प्रोफेसर: और सी? 971 00:48:31,043 --> 00:48:31,542 छात्र: 5. 972 00:48:31,542 --> 00:48:32,083 प्रोफेसर: 5. 973 00:48:32,083 --> 00:48:35,960 और फिर यह सिर्फ जा रहा है एक, एम्परसेंड बी एम्परसेंड किया, 974 00:48:35,960 --> 00:48:38,575 एम्परसेंड सी, है ना? 975 00:48:38,575 --> 00:48:39,728 976 00:48:39,728 --> 00:48:40,596 बुरा नहीं. 977 00:48:40,596 --> 00:48:42,081 यह काफी सरल है. 978 00:48:42,081 --> 00:48:42,580 ठीक. 979 00:48:42,580 --> 00:48:44,300 अगले एक तो. 980 00:48:44,300 --> 00:48:48,725 एक मामले में, एक बार ग के बराबर होती है किसी को भी उस के साथ अपरिचित था. 981 00:48:48,725 --> 00:48:49,812 982 00:48:49,812 --> 00:48:53,300 परिचित हर कोई है टाइम्स के बराबर होती है साथ? 983 00:48:53,300 --> 00:49:00,105 ठीक है, यह सब इस है means-- एक के लिए आशुलिपि एक बार ग के बराबर होती है. 984 00:49:00,105 --> 00:49:04,840 तुम भी विभाजन के साथ ऐसा कर सकते हैं, घटाव के साथ इसके अलावा, के साथ. 985 00:49:04,840 --> 00:49:12,130 आप एक बराबरी कर सकते हैं, या एक से अधिक ग के बराबर होती है एक एक प्लस सी, बराबर एक शून्य के बराबर होती है मतलब 986 00:49:12,130 --> 00:49:15,190 सी एक एक शून्य सी बराबर होती होगी. 987 00:49:15,190 --> 00:49:16,690 यह सिर्फ वाक्यात्मक चीनी है. 988 00:49:16,690 --> 00:49:19,380 989 00:49:19,380 --> 00:49:24,140 >> इसलिए, इस मामले में, एक के बराबर है एक बार ग हमें क्या देंगे? 990 00:49:24,140 --> 00:49:25,910 991 00:49:25,910 --> 00:49:28,186 फिर से, नहीं एक चाल सवाल. 992 00:49:28,186 --> 00:49:28,965 >> छात्र: 100. 993 00:49:28,965 --> 00:49:29,300 >> प्रोफेसर: 100. 994 00:49:29,300 --> 00:49:30,383 कुछ और परिवर्तन करता है? 995 00:49:30,383 --> 00:49:31,790 996 00:49:31,790 --> 00:49:32,290 नहीं. 997 00:49:32,290 --> 00:49:37,380 998 00:49:37,380 --> 00:49:39,850 शायद मैं अंत में मिल जाएगा मेरे एम्परसेंड पर बेहतर. 999 00:49:39,850 --> 00:49:42,047 >> छात्र: ठीक है, माफ करना, आप कैसे 100 मिलता है? 1000 00:49:42,047 --> 00:49:42,630 प्रोफेसर: ठीक है. 1001 00:49:42,630 --> 00:49:46,594 तो एक एक के बराबर है टाइम्स सी है, तो एक बार सी. 1002 00:49:46,594 --> 00:49:48,510 छात्र: ओह, आप उपयोग कर रहे हैं previous-- के लिए एक 1003 00:49:48,510 --> 00:49:49,135 प्रोफेसर: हाँ. 1004 00:49:49,135 --> 00:49:51,450 तो ये हमारी सबसे हाल ही मान रहे हैं. 1005 00:49:51,450 --> 00:49:53,990 ये आप क्या किया जाना चाहिए रहे हैं हम नीचे ले जाने के रूप में ठीक है, का उपयोग कर. 1006 00:49:53,990 --> 00:49:57,290 1007 00:49:57,290 --> 00:50:01,520 तो, ख ही बात बदलते, सही है? 1008 00:50:01,520 --> 00:50:02,910 तो चलो बाकी सब में भर दें. 1009 00:50:02,910 --> 00:50:09,110 1010 00:50:09,110 --> 00:50:11,330 बी क्या ख होने जा रहा है? 1011 00:50:11,330 --> 00:50:13,020 1012 00:50:13,020 --> 00:50:14,140 होना या नहीं होना चाहिए. 1013 00:50:14,140 --> 00:50:18,680 1014 00:50:18,680 --> 00:50:20,240 तो क्या यह कर रहा है? 1015 00:50:20,240 --> 00:50:21,605 देहात कर सितारा क्या है? 1016 00:50:21,605 --> 00:50:23,280 1017 00:50:23,280 --> 00:50:25,350 >> छात्र: देहात के स्थान पर कोड. 1018 00:50:25,350 --> 00:50:26,390 1019 00:50:26,390 --> 00:50:27,480 >> छात्र: नहीं, काफी नहीं है. 1020 00:50:27,480 --> 00:50:29,470 तो यह एक डी संदर्भ है. 1021 00:50:29,470 --> 00:50:31,580 >> छात्र: तो बी देहात का हाथ मान रही है. 1022 00:50:31,580 --> 00:50:37,340 >> प्रोफेसर: हाँ, तो देहात है एक का पता, है ना? 1023 00:50:37,340 --> 00:50:42,430 तो यह एक है जहां जाएं कह रहा है संग्रहीत और यह कि मूल्य दे. 1024 00:50:42,430 --> 00:50:43,884 तो ख क्या है? 1025 00:50:43,884 --> 00:50:44,425 छात्र: 100. 1026 00:50:44,425 --> 00:50:46,534 प्रोफेसर: 100. 1027 00:50:46,534 --> 00:50:47,450 बिल्कुल सही. 1028 00:50:47,450 --> 00:50:49,879 ठीक है, तो पीसी क्या बदल रहा है. 1029 00:50:49,879 --> 00:50:51,170 बाकी सब कुछ एक ही रहता है. 1030 00:50:51,170 --> 00:50:57,160 1031 00:50:57,160 --> 00:50:58,620 क्या पीसी होने जा रहा है? 1032 00:50:58,620 --> 00:51:00,770 1033 00:51:00,770 --> 00:51:01,580 साधारण असाइनमेंट. 1034 00:51:01,580 --> 00:51:03,520 1035 00:51:03,520 --> 00:51:05,990 पीसी देहात के बराबर है, और देहात क्या है? 1036 00:51:05,990 --> 00:51:07,049 >> छात्र: एक एम्परसेंड. 1037 00:51:07,049 --> 00:51:07,840 प्रोफेसर: बिल्कुल सही. 1038 00:51:07,840 --> 00:51:09,490 1039 00:51:09,490 --> 00:51:10,740 अब हम दिलचस्प हो रही है. 1040 00:51:10,740 --> 00:51:12,310 1041 00:51:12,310 --> 00:51:15,230 ठीक है, चलो नीचे यह एक तोड़ देना. 1042 00:51:15,230 --> 00:51:21,110 कि क्योंकि सबसे पहले, क्या, बी टाइम्स सी है इस एक का आसान हिस्सा है, है ना? 1043 00:51:21,110 --> 00:51:22,360 बी टाइम्स सी is-- 1044 00:51:22,360 --> 00:51:23,320 >> छात्र: 500. 1045 00:51:23,320 --> 00:51:28,880 >> प्रोफेसर: हाँ, तो यह एक क्या कर रही है, 1046 00:51:28,880 --> 00:51:33,705 यह सितारा पंजाब, तो क्या बदल रहा है? 1047 00:51:33,705 --> 00:51:35,320 1048 00:51:35,320 --> 00:51:37,242 >> छात्र: क्या the-- में है 1049 00:51:37,242 --> 00:51:38,200 प्रोफेसर: ख में क्या है? 1050 00:51:38,200 --> 00:51:41,340 छात्र: अंतरिक्ष में क्या है कि पंजाब की ओर इशारा कर रहा है. 1051 00:51:41,340 --> 00:51:43,406 प्रोफेसर: और पंजाब to-- इशारा कर रहा है 1052 00:51:43,406 --> 00:51:43,905 छात्र: बी 1053 00:51:43,905 --> 00:51:46,740 प्रोफेसर: बी तो केवल बात बदलते सही, ख है. 1054 00:51:46,740 --> 00:51:50,800 तो बी टाइम्स सी, 500. 1055 00:51:50,800 --> 00:51:52,367 इसलिए कि अब क्या परिवर्तन है. 1056 00:51:52,367 --> 00:51:59,091 1057 00:51:59,091 --> 00:51:59,590 कूल. 1058 00:51:59,590 --> 00:52:00,340 1059 00:52:00,340 --> 00:52:00,840 लवली. 1060 00:52:00,840 --> 00:52:01,905 आप लोग महान कर रहे हैं. 1061 00:52:01,905 --> 00:52:03,650 1062 00:52:03,650 --> 00:52:06,740 इस एक टूट सब ठीक है,. 1063 00:52:06,740 --> 00:52:08,050 1064 00:52:08,050 --> 00:52:09,630 सी सही, बदल रहा है? 1065 00:52:09,630 --> 00:52:11,530 इसलिए हम सब कुछ में भर सकते हैं. 1066 00:52:11,530 --> 00:52:12,540 1067 00:52:12,540 --> 00:52:13,205 चलो देखते हैं. 1068 00:52:13,205 --> 00:52:19,125 1069 00:52:19,125 --> 00:52:19,625 ठीक. 1070 00:52:19,625 --> 00:52:21,420 1071 00:52:21,420 --> 00:52:24,740 हम सी होने जा रहा है कि पता दो नंबर के उत्पाद, है ना? 1072 00:52:24,740 --> 00:52:26,290 1073 00:52:26,290 --> 00:52:27,980 क्या दो नंबर, हालांकि? 1074 00:52:27,980 --> 00:52:28,970 >> छात्र: ए और सी? 1075 00:52:28,970 --> 00:52:31,930 >> प्रोफेसर: तो एक है सही पहले एक के लिए. 1076 00:52:31,930 --> 00:52:34,385 तो हम सही, एक की पी संदर्भित चाहते हो? 1077 00:52:34,385 --> 00:52:35,390 1078 00:52:35,390 --> 00:52:42,870 एक करने के लिए एक अंक के पी, इसलिए हम जानते हैं कि इस बार 100 क्या होने जा रहा है? 1079 00:52:42,870 --> 00:52:46,232 करने के लिए पीसी बिंदु क्या करता टाइम्स? 1080 00:52:46,232 --> 00:52:47,410 1081 00:52:47,410 --> 00:52:48,740 एक अंक. 1082 00:52:48,740 --> 00:52:55,038 तो 100 गुना 100 10,000 है. 1083 00:52:55,038 --> 00:52:56,170 वह समझ में आता है? 1084 00:52:56,170 --> 00:52:57,640 1085 00:52:57,640 --> 00:52:58,200 कूल. 1086 00:52:58,200 --> 00:53:00,500 घर खंड, दोस्तों, अंतिम पंक्ति. 1087 00:53:00,500 --> 00:53:01,190 ठीक. 1088 00:53:01,190 --> 00:53:02,160 यहाँ क्या बदल रहा है? 1089 00:53:02,160 --> 00:53:05,640 1090 00:53:05,640 --> 00:53:06,935 >> छात्र: ए 1091 00:53:06,935 --> 00:53:09,435 प्रोफेसर: ए बिल्कुल सही है, तो सब कुछ एक ही रह सकते हैं. 1092 00:53:09,435 --> 00:53:16,210 1093 00:53:16,210 --> 00:53:16,710 ठीक. 1094 00:53:16,710 --> 00:53:17,970 और एक क्या है? 1095 00:53:17,970 --> 00:53:23,610 1096 00:53:23,610 --> 00:53:26,060 तो यह एक बार क्या है? 1097 00:53:26,060 --> 00:53:27,120 इस स्टार PB है. 1098 00:53:27,120 --> 00:53:29,750 1099 00:53:29,750 --> 00:53:34,490 तो स्टार पंजाब यहाँ है मतलब पंजाब, पंजाब अंक ख. 1100 00:53:34,490 --> 00:53:35,370 >> छात्र: 500. 1101 00:53:35,370 --> 00:53:36,230 >> प्रोफेसर: 500. 1102 00:53:36,230 --> 00:53:39,236 तो हम 500 गुना 100 है. 1103 00:53:39,236 --> 00:53:41,758 यही कारण है कि 50,000 है. 1104 00:53:41,758 --> 00:53:43,216 वाह! 1105 00:53:43,216 --> 00:53:45,646 वो देखो. 1106 00:53:45,646 --> 00:53:47,982 >> छात्र: क्यों हम क्या है Last-- के लिए और सी 1107 00:53:47,982 --> 00:53:48,690 प्रोफेसर: क्षमा करें. 1108 00:53:48,690 --> 00:53:50,080 छात्र: ठीक है, ओह. 1109 00:53:50,080 --> 00:53:51,600 प्रोफेसर: मेरा बुरा. 1110 00:53:51,600 --> 00:53:52,890 लेखन के बहुत सारे. 1111 00:53:52,890 --> 00:53:53,917 1112 00:53:53,917 --> 00:53:54,500 हर कोई अच्छा? 1113 00:53:54,500 --> 00:53:55,630 1114 00:53:55,630 --> 00:53:56,660 बहुत बुरा नहीं है, है ना? 1115 00:53:56,660 --> 00:53:58,490 बस थोड़ा सा लेता है जबकि के माध्यम से काम करने के लिए. 1116 00:53:58,490 --> 00:54:01,080 आप इसे तोड़ने के नीचे हैं, क्या प्रत्येक भाग को समझने 1117 00:54:01,080 --> 00:54:03,197 के रूप में to-- बात कर रहा है यह सब कुछ के साथ, 1118 00:54:03,197 --> 00:54:05,780 थोड़ा करने के लिए इसे तोड़ने के नीचे yes-- फिर recombine और समस्याओं, 1119 00:54:05,780 --> 00:54:07,345 और आप कुछ भयानक चीजें कर सकते हैं. 1120 00:54:07,345 --> 00:54:08,970 वहाँ जवाब हैं, लेकिन हम उस किया. 1121 00:54:08,970 --> 00:54:10,324 1122 00:54:10,324 --> 00:54:11,115 सूचक गणित. 1123 00:54:11,115 --> 00:54:13,961 1124 00:54:13,961 --> 00:54:14,460 आह. 1125 00:54:14,460 --> 00:54:15,510 मेरे हाथ सब चूने हैं. 1126 00:54:15,510 --> 00:54:17,970 तो जोड़ने या घटाकर पूर्णांक सूचक समायोजित कर देता है 1127 00:54:17,970 --> 00:54:21,890 सूचक के प्रकार के आकार से. 1128 00:54:21,890 --> 00:54:22,940 1129 00:54:22,940 --> 00:54:28,390 कैसे हर प्रकार याद रखें एक अलग आकार है? 1130 00:54:28,390 --> 00:54:34,890 एक डबल या एक लंबी लंबी है की तरह तो आठ और पूर्णांक चार है लेकिन चार में से एक है. 1131 00:54:34,890 --> 00:54:38,360 >> तो आप क्या करना चाहते हैं एक बात याद is-- 1132 00:54:38,360 --> 00:54:44,080 बस कैसे अपने ज्यादा है कि सूचक मूल्य वास्तव में परिवर्तन 1133 00:54:44,080 --> 00:54:46,550 पर निर्भर करेगा सूचक का प्रकार यह है. 1134 00:54:46,550 --> 00:54:50,820 1135 00:54:50,820 --> 00:54:51,820 इस के साथ अच्छा सब लोग? 1136 00:54:51,820 --> 00:54:52,760 मैं इसे मिटा सकते हैं? 1137 00:54:52,760 --> 00:54:53,440 हम अच्छा कर रहे हैं? 1138 00:54:53,440 --> 00:54:53,940 बहुत बढ़िया. 1139 00:54:53,940 --> 00:55:01,020 1140 00:55:01,020 --> 00:55:07,501 >> हम कुछ सूचक है तो यह जा रहा है that-- मैं हूँ be-- को 1141 00:55:07,501 --> 00:55:08,834 यह एक पूर्णांक सूचक बनाने जा रही. 1142 00:55:08,834 --> 00:55:10,610 1143 00:55:10,610 --> 00:55:12,760 यह इस भंडार. 1144 00:55:12,760 --> 00:55:14,210 1145 00:55:14,210 --> 00:55:20,170 आप सूचक कहना थे प्लस एक, यह करने के लिए क्या हो रहा है 1146 00:55:20,170 --> 00:55:23,420 यह अद्यतन करने के लिए जा रहा है एक पूर्णांक के आकार से यह 1147 00:55:23,420 --> 00:55:25,950 कि क्योंकि सूचक का प्रकार यह है. 1148 00:55:25,950 --> 00:55:28,260 >> सी के साथ, सब कुछ है बहुत सख्त और विनियमित. 1149 00:55:28,260 --> 00:55:29,440 1150 00:55:29,440 --> 00:55:35,260 पूर्णांक सूचक द्वारा अद्यतन करने के लिए जा रहा है एक पूर्णांक ले जाएगा अंतरिक्ष की राशि. 1151 00:55:35,260 --> 00:55:36,260 एक पूर्णांक चार बाइट्स है. 1152 00:55:36,260 --> 00:55:37,650 1153 00:55:37,650 --> 00:55:39,060 >> तो क्या इस में बदल जाएगा? 1154 00:55:39,060 --> 00:55:40,876 1155 00:55:40,876 --> 00:55:44,390 तुम सिर्फ इस पर चार जोड़ रहे हैं. 1156 00:55:44,390 --> 00:55:50,040 अब अपने सूचक ठीक be-- होगा. 1157 00:55:50,040 --> 00:55:51,820 1158 00:55:51,820 --> 00:55:55,380 >> तो अगर यह एक चार थी और हम सूचक किया प्लस एक, यह अब क्या होगा? 1159 00:55:55,380 --> 00:56:00,300 1160 00:56:00,300 --> 00:56:03,330 यह हम नाटक started-- हैं यह 0x08 अभी started--. 1161 00:56:03,330 --> 00:56:04,850 1162 00:56:04,850 --> 00:56:10,850 चलो अब इस एक था कि हम कहते हैं सूचक चार, और हम एक जोड़ा. 1163 00:56:10,850 --> 00:56:11,850 यह क्या करने के लिए बदल जाएगा? 1164 00:56:11,850 --> 00:56:14,989 1165 00:56:14,989 --> 00:56:16,030 एक चार कितने बाइट्स है? 1166 00:56:16,030 --> 00:56:16,680 >> दर्शकों: एक. 1167 00:56:16,680 --> 00:56:17,304 >> अध्यक्ष 1: एक. 1168 00:56:17,304 --> 00:56:18,309 दर्शक: तो 0x09. 1169 00:56:18,309 --> 00:56:19,600 अध्यक्ष 1: तो यह नौ होगा. 1170 00:56:19,600 --> 00:56:22,571 1171 00:56:22,571 --> 00:56:23,820 तो बस कुछ याद करने के लिए. 1172 00:56:23,820 --> 00:56:28,340 आप एक जोड़ने, बस जब यह नहीं है यह एक चार जब तक एक जोड़ने. 1173 00:56:28,340 --> 00:56:34,190 यह कितने जोड़ने है , यह है कि टाइप बाइट्स 1174 00:56:34,190 --> 00:56:36,960 जो हमारे पास क्यों है यहाँ इस समीकरण. 1175 00:56:36,960 --> 00:56:40,190 तो यह है पूर्णांक बार आकार सूचक के प्रकार की. 1176 00:56:40,190 --> 00:56:42,850 1177 00:56:42,850 --> 00:56:44,730 >> इसलिए हम यहां उदाहरण है. 1178 00:56:44,730 --> 00:56:47,250 1179 00:56:47,250 --> 00:56:54,430 वाई, कि मूल्य, 0x4 को सौंपा गया था हम y किया प्लस एक बराबर होती है. 1180 00:56:54,430 --> 00:56:56,830 क्या उस में है, क्या है एक्स में, परिवर्तन नहीं करता है. 1181 00:56:56,830 --> 00:56:58,610 क्या परिवर्तन करता y में क्या है. 1182 00:56:58,610 --> 00:57:04,980 y में संग्रहीत पते चार के द्वारा अद्यतन चार बाइट्स एक पूर्णांक में है क्योंकि वहाँ 1183 00:57:04,980 --> 00:57:06,097 और यह एक पूर्णांक सूचक है. 1184 00:57:06,097 --> 00:57:07,290 1185 00:57:07,290 --> 00:57:07,790 >> ठीक है. 1186 00:57:07,790 --> 00:57:09,123 तो अब हम एक और व्यायाम है. 1187 00:57:09,123 --> 00:57:11,140 1188 00:57:11,140 --> 00:57:13,500 तो सवाल यह मुद्रित होगा क्या है. 1189 00:57:13,500 --> 00:57:36,710 1190 00:57:36,710 --> 00:57:37,650 किसी भी विचार? 1191 00:57:37,650 --> 00:57:41,690 1192 00:57:41,690 --> 00:57:43,699 >> दर्शक: की संख्या खुश बिल्ली में पात्रों? 1193 00:57:43,699 --> 00:57:44,490 अध्यक्ष 1: बिल्कुल. 1194 00:57:44,490 --> 00:57:45,531 तो अपने तार के साथ पसंद है. 1195 00:57:45,531 --> 00:57:47,302 1196 00:57:47,302 --> 00:57:48,260 हर कोई उस मिलता है? 1197 00:57:48,260 --> 00:57:49,509 हम इसके माध्यम से चलना चाहते हैं? 1198 00:57:49,509 --> 00:57:50,300 1199 00:57:50,300 --> 00:57:52,010 >> ठीक है, हाँ. 1200 00:57:52,010 --> 00:57:57,385 इसलिए हम मैं here-- है क्या इतना अधिक इस तरह. 1201 00:57:57,385 --> 00:57:59,340 मैं करने के लिए नहीं है [अश्राव्य] हास्यास्पद. 1202 00:57:59,340 --> 00:58:01,690 >> तो हम यहाँ हमारी स्ट्रिंग, खुश बिल्ली है. 1203 00:58:01,690 --> 00:58:02,950 लवली. 1204 00:58:02,950 --> 00:58:05,080 हम कुछ काउंटर है कि हम का ट्रैक रख रहे हैं. 1205 00:58:05,080 --> 00:58:11,430 इसलिए हम कुछ चार * सूचक है कि सिर्फ str के बराबर निर्धारित है. 1206 00:58:11,430 --> 00:58:14,320 क्या कर रही है यह बात है कुछ सूचक बताए 1207 00:58:14,320 --> 00:58:16,380 अपने स्ट्रिंग की शुरुआत करने के लिए. 1208 00:58:16,380 --> 00:58:19,840 मुझे यकीन है, यह रूप व्याख्यान में उल्लेख किया गया था, 1209 00:58:19,840 --> 00:58:22,290 हम यह तुम लोगों को दे दिया है स्ट्रिंग बुलाया डेटा प्रकार. 1210 00:58:22,290 --> 00:58:29,070 >> लेकिन वास्तव में तार बस रहे हैं एक सरणी * चार तरह of--. 1211 00:58:29,070 --> 00:58:32,330 यह अक्षर का एक गुच्छा के लिए एक संकेत है स्मृति में सन्निहित हैं. 1212 00:58:32,330 --> 00:58:33,680 1213 00:58:33,680 --> 00:58:36,280 तो यह सिर्फ यह सेट किसी स्ट्रिंग के बराबर है 1214 00:58:36,280 --> 00:58:38,980 जहां से पहचान अपनी पहली चरित्र है. 1215 00:58:38,980 --> 00:58:42,710 तो यह सिर्फ कुछ बिंदु स्थापित कर रहा है स्ट्रिंग की शुरुआत के बराबर. 1216 00:58:42,710 --> 00:58:44,130 हर कोई वहाँ अच्छा? 1217 00:58:44,130 --> 00:58:44,960 कूल. 1218 00:58:44,960 --> 00:58:49,840 >> तो यह हमारे सूचक dereferencing है. 1219 00:58:49,840 --> 00:58:53,760 तो यह वास्तव में हो रहा है यहाँ हमें कुछ मूल्य दे, 1220 00:58:53,760 --> 00:58:55,610 हमारे स्ट्रिंग में हम बात कर रहे हैं. 1221 00:58:55,610 --> 00:58:58,342 और हम के रूप में लंबे समय के रूप में कह रहे हैं यह शून्य टर्मिनेटर नहीं है. 1222 00:58:58,342 --> 00:59:00,550 तो आप जब तक जा रहा रखने स्ट्रिंग के अंत करने के लिए. 1223 00:59:00,550 --> 00:59:02,180 1224 00:59:02,180 --> 00:59:04,190 एक एक करके अपने सूचक को अद्यतन करें. 1225 00:59:04,190 --> 00:59:09,250 तो आर, यह वास्तव में एक से अद्यतन करेगा हर बार यह एक चार है क्योंकि, 1226 00:59:09,250 --> 00:59:09,820 चार *. 1227 00:59:09,820 --> 00:59:10,930 1228 00:59:10,930 --> 00:59:12,340 >> तो यह माध्यम से जाना जा रहा है. 1229 00:59:12,340 --> 00:59:13,290 यह अद्यतन करने के लिए जा रहा है. 1230 00:59:13,290 --> 00:59:16,705 इस चलाता पहली बार तो, यह ज में यहाँ होने जा रहा है. 1231 00:59:16,705 --> 00:59:17,590 यह अद्यतन करने के लिए जा रहा है. 1232 00:59:17,590 --> 00:59:18,185 >> यह एक एक हो जाएगा. 1233 00:59:18,185 --> 00:59:21,310 यह इतना पर और आगे एक पी, वाई हो, और करेंगे. 1234 00:59:21,310 --> 00:59:22,300 हम काउंटर अपडेट करेंगे. 1235 00:59:22,300 --> 00:59:26,160 यह अंत तक पहुँच जाता है, यह बस यह हो गया है कि कैसे अब तक प्रिंट. 1236 00:59:26,160 --> 00:59:27,550 1237 00:59:27,550 --> 00:59:28,050 हां. 1238 00:59:28,050 --> 00:59:31,475 >> दर्शक: यह मायने रखता है तो सही रूप में अंतरिक्ष,? 1239 00:59:31,475 --> 00:59:31,974 ठीक. 1240 00:59:31,974 --> 00:59:34,294 1241 00:59:34,294 --> 00:59:35,222 >> अध्यक्ष 1: ऐसा लगता है. 1242 00:59:35,222 --> 00:59:36,830 एक question-- कि है 1243 00:59:36,830 --> 00:59:37,746 >> दर्शक: [अश्राव्य]. 1244 00:59:37,746 --> 00:59:37,968 1245 00:59:37,968 --> 00:59:38,884 >> अध्यक्ष 1: कोई चिंता नहीं. 1246 00:59:38,884 --> 00:59:39,720 1247 00:59:39,720 --> 00:59:42,736 यह मैं ऐसा. 1248 00:59:42,736 --> 00:59:47,710 ठीक है, तो एक बात मैं समझ में है एक सरणी के साथ कि, 1249 00:59:47,710 --> 00:59:51,736 आप भी एक के रूप में व्यवहार कर सकते हैं सूचक सरणियों बस रहे हैं क्योंकि 1250 00:59:51,736 --> 00:59:52,860 स्मृति के निरंतर स्पॉट. 1251 00:59:52,860 --> 00:59:53,970 1252 00:59:53,970 --> 00:59:56,380 >> तो क्या आप इसे उसी तरह से इलाज कर सकते हैं. 1253 00:59:56,380 --> 00:59:59,000 तुम उन्हें हेरफेर कर सकते हैं संकेत के साथ भी है. 1254 00:59:59,000 --> 01:00:04,770 तो बजाय इस में, कर मामला, अनुरूप बात 1255 01:00:04,770 --> 01:00:07,490 होगा सरणी 0 1 के बराबर होती है. 1256 01:00:07,490 --> 01:00:08,760 1257 01:00:08,760 --> 01:00:15,210 >> लेकिन एक ही तरीका है कि एक स्ट्रिंग निर्धारित किया जाता है 1258 01:00:15,210 --> 01:00:18,740 जहां की शुरुआत से अपनी पहली चरित्र है, 1259 01:00:18,740 --> 01:00:22,270 एक सरणी से निर्धारित होता है जहां अपना पहला तत्व है. 1260 01:00:22,270 --> 01:00:25,120 जैसा कि हम जानते हैं, हम कर रहे हैं गारंटी, कि इन 1261 01:00:25,120 --> 01:00:27,985 निरंतर होने जा रहे हैं स्मृति के ब्लॉक. 1262 01:00:27,985 --> 01:00:29,360 यही कारण है कि हमें ऐसा करने के लिए अनुमति देता है. 1263 01:00:29,360 --> 01:00:31,193 हम वे निरंतर कर रहे हैं पता स्मृति के ब्लॉक. 1264 01:00:31,193 --> 01:00:32,230 1265 01:00:32,230 --> 01:00:36,500 >> इस मामले में तो, dereferencing से हमें बताता है कि सिर्फ सरणी, 1266 01:00:36,500 --> 01:00:40,800 ठीक है, की शुरुआत करने के लिए जाना यहाँ है जो अपने सरणी,. 1267 01:00:40,800 --> 01:00:42,640 तो आप एक के लिए यह बराबर सेट कर सकते हैं. 1268 01:00:42,640 --> 01:00:48,610 और इस मामले में, जो कुछ भी आपके सरणी आप एक एक करके यह अद्यतन जब प्रकार है, 1269 01:00:48,610 --> 01:00:50,830 कि बस को अद्यतन करने की तरह है यह अगले सूचकांक करने के लिए. 1270 01:00:50,830 --> 01:00:52,760 1271 01:00:52,760 --> 01:00:56,360 आप क्या कर सकते हैं कि आप क्योंकि अपने सरणी में पता है क्या. 1272 01:00:56,360 --> 01:00:59,770 तो यह कितना जानता है अपने सूचक द्वारा अद्यतन, 1273 01:00:59,770 --> 01:01:02,925 यह इतना को अद्यतन करने के लिए क्या पता आप अगले स्लॉट में हो. 1274 01:01:02,925 --> 01:01:04,740 1275 01:01:04,740 --> 01:01:09,400 >> तो यह सिर्फ एक अलग तरीका है की सरणी 0 1 के बराबर होती है, लेखन 1276 01:01:09,400 --> 01:01:15,114 सरणी 1 2, सरणी के बराबर होती है ब्रैकेट 2 3 बराबर होती है. 1277 01:01:15,114 --> 01:01:16,780 यह इस बारे में सोचने के लिए सिर्फ एक और तरीका है. 1278 01:01:16,780 --> 01:01:19,600 वे लगातार कर रहे हैं क्योंकि स्मृति में ब्लॉक, 1279 01:01:19,600 --> 01:01:21,830 आप या तो उन्हें उल्लेख कर सकते हैं सरणी notation-- से 1280 01:01:21,830 --> 01:01:24,390 जो मैं व्यक्तिगत रूप से easier-- लगता है लेकिन हो सकता है 1281 01:01:24,390 --> 01:01:27,347 आप यह हेरफेर करने की जरूरत है सख्ती से स्मृति पते से. 1282 01:01:27,347 --> 01:01:28,930 और यह आपको लगता है कि ऐसा होगा जिस तरह से है. 1283 01:01:28,930 --> 01:01:30,630 1284 01:01:30,630 --> 01:01:32,630 एक तरह की तरह के और अधिक तुम कर सकते हो शांत बात 1285 01:01:32,630 --> 01:01:35,213 आप कर रहे हैं शायद नहीं कुछ बनाम वास्तव में लागू करने के लिए जा रहा है. 1286 01:01:35,213 --> 01:01:36,960 1287 01:01:36,960 --> 01:01:38,630 >> मैं 61 में इसका इस्तेमाल करते हैं. 1288 01:01:38,630 --> 01:01:41,710 तुम लोग शायद जरूरत नहीं है बहुत ज्यादा इसके बारे में चिंता करने के लिए. 1289 01:01:41,710 --> 01:01:43,693 लेकिन अगर आप रुचि रखते हैं, 61 अगले साल ले. 1290 01:01:43,693 --> 01:01:45,269 1291 01:01:45,269 --> 01:01:46,560 हम घर खंड लोगों में हैं. 1292 01:01:46,560 --> 01:01:47,510 मुझे पता है, यह लंबे समय से है. 1293 01:01:47,510 --> 01:01:50,570 1294 01:01:50,570 --> 01:01:58,880 गतिशील स्मृति Allocation-- इसलिए हम चाहते हैं कि किसी को पता 1295 01:01:58,880 --> 01:02:01,790 बातों का हम के दौरान बात की थी जब एक साथ हमारे प्रथम खंड, 1296 01:02:01,790 --> 01:02:04,560 हम एक स्वैप पर देखा समारोह जहां यह था 1297 01:02:04,560 --> 01:02:08,010 हमारा मुख्य समारोह के दायरे से बाहर. 1298 01:02:08,010 --> 01:02:14,370 और हम इन मूल्यों में गुजर गया कि प्रभावी ढंग से प्रतियां थे. 1299 01:02:14,370 --> 01:02:20,570 >> और स्वैप एक बार समाप्त क्रियान्वित करने, यह सिर्फ एक ढेर छोड़ दिया है. 1300 01:02:20,570 --> 01:02:22,830 याद रखें, हमारे पास एक स्वैप के लिए फ्रेम हो चुकी है. 1301 01:02:22,830 --> 01:02:26,070 यह पत्ते और उन मूल्यों इसके साथ छोड़ दें. 1302 01:02:26,070 --> 01:02:27,050 और वे चले गये थे. 1303 01:02:27,050 --> 01:02:28,615 हम कुछ नहीं कर सका उनके साथ हम और उदास थे 1304 01:02:28,615 --> 01:02:29,989 हम अपने मूल्यों को स्वैप नहीं कर सकते हैं. 1305 01:02:29,989 --> 01:02:31,070 1306 01:02:31,070 --> 01:02:36,560 >> लेकिन मुझे लगता है कि आप का उल्लेख सी के साथ, के रूप में स्मृति पर सत्ता का एक बहुत कुछ है. 1307 01:02:36,560 --> 01:02:43,310 तो आप क्या कर सकते हैं आप कर सकते है यहां ढेर पर बातें आवंटित 1308 01:02:43,310 --> 01:02:46,830 कि जब तक वहाँ रहेंगे आप अन्यथा उन्हें बताओ. 1309 01:02:46,830 --> 01:02:48,280 >> वे अच्छे बच्चों की तरह हो. 1310 01:02:48,280 --> 01:02:49,150 वे वहाँ रहते हैं. 1311 01:02:49,150 --> 01:02:50,270 वे छोड़ नहीं है. 1312 01:02:50,270 --> 01:02:52,750 आप कर रहे हैं जब तक वे वहां रहेंगे जैसे, ठीक है, तुम दूर जा सकते हैं. 1313 01:02:52,750 --> 01:02:55,920 >> ढेर पर बातें जबकि, who-- वे शरारती बच्चों की तरह हो. 1314 01:02:55,920 --> 01:02:59,160 आप चाहते हैं कि जब वे सिर्फ दूर चलने देंगे वहाँ हो सकता है और उसके बाद वे चले गए हैं. 1315 01:02:59,160 --> 01:03:00,160 आप उन्हें वापस नहीं मिल सकता है. 1316 01:03:00,160 --> 01:03:01,350 1317 01:03:01,350 --> 01:03:07,187 >> तो हम करने जा रहे हैं is-- ढेर , malloc और मुक्त बारे में बात करते हैं, जो 1318 01:03:07,187 --> 01:03:08,895 मुझे यकीन है कि तुम लोग हूँ व्याख्यान में के बारे में सुना है. 1319 01:03:08,895 --> 01:03:10,270 1320 01:03:10,270 --> 01:03:14,210 और वह मूल रूप से एक रास्ता है बहुत लगातार डेटा है. 1321 01:03:14,210 --> 01:03:18,920 तो आप डेटा रख सकते हैं आसपास के रूप में लंबे समय के रूप में आप चाहते. 1322 01:03:18,920 --> 01:03:19,546 एम एच एम. 1323 01:03:19,546 --> 01:03:21,475 >> दर्शक: आप ढेर को परिभाषित करने और ढेर कर सकते हैं? 1324 01:03:21,475 --> 01:03:24,030 वे बातें करना स्थानों की तरह हैं? 1325 01:03:24,030 --> 01:03:26,630 >> अध्यक्ष 1: तो वे कर रहे हैं मूल रूप से वे कर रहे हैं just-- 1326 01:03:26,630 --> 01:03:29,530 हम सिर्फ स्मृति को देखें रास्ता. 1327 01:03:29,530 --> 01:03:37,300 तो ढेर बस जहां स्थानों पर है स्मृति, गतिशील रूप से आवंटित किया गया है 1328 01:03:37,300 --> 01:03:40,960 ढेर संदर्भित करता है, जबकि फ्रेम ढेर अधिक 1329 01:03:40,960 --> 01:03:45,950 अधिक करने के लिए केंद्रीय हैं कि वास्तव में चलाए जा रहे कार्य करता है. 1330 01:03:45,950 --> 01:03:47,200 आप वास्तव में नियंत्रण नहीं है. 1331 01:03:47,200 --> 01:03:50,690 >> बड़ा अंतर यह है कि आप नियंत्रण नहीं है ढेर के ऊपर यदि आप चाहते हैं. 1332 01:03:50,690 --> 01:03:52,710 आप ढेर पर कम नियंत्रण है. 1333 01:03:52,710 --> 01:03:55,030 ढेर पर निर्भर करता है कार्यों चल रहे हैं, 1334 01:03:55,030 --> 01:03:58,320 और व्यवस्था में जो वे कर रहे हैं चलाने के लिए, और चीजों को कैसे वापस आ रहे हैं. 1335 01:03:58,320 --> 01:04:01,290 ढेर के साथ जबकि, के रूप में हम, आप कह सकते हैं, देख लेंगे 1336 01:04:01,290 --> 01:04:06,639 ठीक है, मैं यह मान होना चाहता हूँ आसपास जब तक मैं नहीं तो तुम बताओ. 1337 01:04:06,639 --> 01:04:08,180 आप इसे से छुटकारा पाने के लिए अनुमति नहीं है. 1338 01:04:08,180 --> 01:04:09,300 आप यह ओवरराइड करने के लिए अनुमति नहीं है. 1339 01:04:09,300 --> 01:04:11,675 आप इसे चारों ओर रखने के लिए जा रहे हैं जब तक मैं आपको बता के रूप में लिए. 1340 01:04:11,675 --> 01:04:15,780 आप ढेर में मालिक हो जाओ आप अगर शायद stack-- जबकि 1341 01:04:15,780 --> 01:04:18,080 की तरह अपना रास्ता finagle आप मालिक हो सकता है. 1342 01:04:18,080 --> 01:04:19,340 लेकिन काफी नहीं है. 1343 01:04:19,340 --> 01:04:20,480 1344 01:04:20,480 --> 01:04:22,070 और यह वास्तव में सिर्फ स्मृति है. 1345 01:04:22,070 --> 01:04:24,260 यह सिर्फ अलग अलग तरीकों से है की स्मृति का जिक्र है. 1346 01:04:24,260 --> 01:04:25,800 1347 01:04:25,800 --> 01:04:26,400 >> कूल. 1348 01:04:26,400 --> 01:04:28,630 करने के लिए, कैसे उस के साथ तो अपनी स्मृति नियंत्रित करते हैं. 1349 01:04:28,630 --> 01:04:32,070 यह malloc, साथ है जो आप का उपयोग करने के लिए ले जा रहे हैं. 1350 01:04:32,070 --> 01:04:37,100 तो यह सिर्फ छोटी है स्मृति आवंटन के लिए. 1351 01:04:37,100 --> 01:04:38,459 यही कारण है कि यह सब है. 1352 01:04:38,459 --> 01:04:41,250 अन्य शांत की एक गुच्छा है अंत में alloc है कि काम करता है, 1353 01:04:41,250 --> 01:04:42,750 और वे अलग अलग चीजों के लिए खड़े हो जाओ. 1354 01:04:42,750 --> 01:04:43,550 1355 01:04:43,550 --> 01:04:49,050 >> आप भंडारण की जरूरत है तो जब कि जरूरत इसलिए अपने वर्तमान समारोह खत्म करने के लिए 1356 01:04:49,050 --> 01:04:51,010 जब अपने वर्तमान कि समारोह, भाग जाता है 1357 01:04:51,010 --> 01:04:55,774 आप अभी भी डेटा है कि आप यह से मिला, आप malloc उपयोग करना चाहते हैं. 1358 01:04:55,774 --> 01:04:57,190 उस ढेर पर आरंभ करेंगे. 1359 01:04:57,190 --> 01:05:00,140 और जैसा मैंने कहा और रखना तुम वहाँ यह रखता हूँ, कह रही है 1360 01:05:00,140 --> 01:05:03,050 आप अन्यथा यह बताना तक, जो यहां महत्वपूर्ण बात है. 1361 01:05:03,050 --> 01:05:08,450 >> तो एक बात नोटिस, और करने के लिए कि, आम तौर पर वास्तव में महत्वपूर्ण है 1362 01:05:08,450 --> 01:05:13,620 इस sizeof कि है उपयोग करने के लिए अति उपयोगी है 1363 01:05:13,620 --> 01:05:16,440 प्रकार पर निर्भर करता है क्योंकि मशीन की आप चला रहे हैं, 1364 01:05:16,440 --> 01:05:22,470 यह अलग मात्रा हो सकती है यह लेता है कि स्मृति की. 1365 01:05:22,470 --> 01:05:26,870 तो तुम हमेशा इतनी के आकार का उपयोग करना चाहते हैं आप निर्भर मशीन नहीं कर रहे हैं कि, 1366 01:05:26,870 --> 01:05:30,300 इतना है कि अपने कोड होगा किसी भी मशीन पर चलाते हैं. 1367 01:05:30,300 --> 01:05:32,360 >> और कहा कि सिर्फ एक हिस्सा है का अच्छा कोड लिखने. 1368 01:05:32,360 --> 01:05:34,610 यह एक मशीन पर काम करता है, लेकिन नहीं दूसरों के किसी भी, 1369 01:05:34,610 --> 01:05:36,440 अपने कार्यक्रम कैसे उपयोगी था? 1370 01:05:36,440 --> 01:05:38,420 तो तुम हमेशा के लिए चाहते हैं बनाना और sizeof का उपयोग करें. 1371 01:05:38,420 --> 01:05:41,306 >> दर्शक: तो पसंद है 10 इंच [अश्राव्य] का आकार? 1372 01:05:41,306 --> 01:05:43,698 >> अध्यक्ष 1: यह 10 ints का आकार है. 1373 01:05:43,698 --> 01:05:44,197 हाँ. 1374 01:05:44,197 --> 01:05:45,360 1375 01:05:45,360 --> 01:05:48,830 तो ints के आकार में वापस आ जाएगी एक पूर्णांक कितना ले करता है. 1376 01:05:48,830 --> 01:05:51,530 या चार के आकार, कैसे ज्यादा एक चार ले करता है. 1377 01:05:51,530 --> 01:05:54,150 और फिर कितने ब्लॉक इस बात का है कि आप क्या चाहते हैं? 1378 01:05:54,150 --> 01:05:57,590 >> इस मामले में तो, हम कुछ करना चाहते हैं कि हम 10 ints को स्टोर कर सकते हैं. 1379 01:05:57,590 --> 01:06:00,240 और यह परवाह किए बिना काम करेंगे मशीन, की जो शांत है. 1380 01:06:00,240 --> 01:06:01,720 1381 01:06:01,720 --> 01:06:04,846 तो कितने बाइट्स होगा कि वास्तव में आप दे? 1382 01:06:04,846 --> 01:06:06,190 जल्दी गणित. 1383 01:06:06,190 --> 01:06:06,787 >> दर्शक: 40. 1384 01:06:06,787 --> 01:06:07,370 अध्यक्ष 1: 40. 1385 01:06:07,370 --> 01:06:07,869 बिल्कुल सही. 1386 01:06:07,869 --> 01:06:09,520 1387 01:06:09,520 --> 01:06:12,030 तो एक और बड़ी बात. 1388 01:06:12,030 --> 01:06:14,840 सूचक या malloc अशक्त लौट सकते हैं. 1389 01:06:14,840 --> 01:06:17,910 >> तो फिर, हमेशा के लिए जाँच यह शून्य लौट अगर देखना 1390 01:06:17,910 --> 01:06:19,620 आप कोशिश करते हैं और इसके साथ कुछ भी करने से पहले. 1391 01:06:19,620 --> 01:06:23,430 1392 01:06:23,430 --> 01:06:27,350 आप कोशिश करते हैं और भिन्नता हैं अब इस सूचक, 1393 01:06:27,350 --> 01:06:29,720 यह सिर्फ segfault जा रहा है आप के पास गया और कोशिश की क्योंकि 1394 01:06:29,720 --> 01:06:31,730 आप नहीं करना चाहिए जब शून्य को छूने के लिए. 1395 01:06:31,730 --> 01:06:34,000 इसलिए हमेशा शून्य के लिए जाँच करें. 1396 01:06:34,000 --> 01:06:36,075 फिर, सब आप कर सकते हैं. 1397 01:06:36,075 --> 01:06:38,300 1398 01:06:38,300 --> 01:06:39,720 >> यह अशक्त वापसी हो सकती है. 1399 01:06:39,720 --> 01:06:42,740 आप या तो कर रहे हैं अगर यह शून्य वापस कर देंगे अंतरिक्ष के बाहर, या जो भी कारण के लिए 1400 01:06:42,740 --> 01:06:44,350 यह कुछ स्मृति बग में भाग गया. 1401 01:06:44,350 --> 01:06:45,890 1402 01:06:45,890 --> 01:06:47,510 यह कभी-कभी सिर्फ शून्य देता. 1403 01:06:47,510 --> 01:06:48,990 तो अगर आप अभी इसके लिए जांच है. 1404 01:06:48,990 --> 01:06:51,050 यह सब इस स्लाइड कह रहा है. 1405 01:06:51,050 --> 01:06:53,366 1406 01:06:53,366 --> 01:06:55,240 और फिर हम क्या है यहाँ मुफ्त के लिए एक फोन है. 1407 01:06:55,240 --> 01:07:00,550 एक ही तरीका है कि में तो तुम अगर आप एक फाइल को बंद करना होगा एक फ़ाइल खोलने, 1408 01:07:00,550 --> 01:07:04,340 आप अगर malloc स्मृति, आप आपको लगता है कि स्मृति को मुक्त करना होगा. 1409 01:07:04,340 --> 01:07:06,530 और तुम लोग मिल जाएगा वास्तव में अच्छा सामान करना. 1410 01:07:06,530 --> 01:07:09,624 >> और आप को चला सकते हैं एक कार्यक्रम नहीं है आप कभी स्मृति लीक कर रहे हैं देखते हैं. 1411 01:07:09,624 --> 01:07:11,040 लेकिन आप स्मृति रिसाव नहीं करना चाहती. 1412 01:07:11,040 --> 01:07:11,820 यह वास्तव में बुरा है. 1413 01:07:11,820 --> 01:07:13,191 1414 01:07:13,191 --> 01:07:15,020 बस पंगा बातें. 1415 01:07:15,020 --> 01:07:20,939 >> यह सिर्फ प्रोग्रामिंग की तरह क्या करना बुरा है डिजाइन दक्षता के लिए बुद्धिमान. 1416 01:07:20,939 --> 01:07:22,980 लेकिन यह सिर्फ तरह भी है आपके कंप्यूटर के लिए बुरा. 1417 01:07:22,980 --> 01:07:26,780 तो बस मुक्त बातें आप उन्हें malloc जब. 1418 01:07:26,780 --> 01:07:28,190 1419 01:07:28,190 --> 01:07:30,210 >> तुम लोग यहां समानताएं देखते हैं. 1420 01:07:30,210 --> 01:07:31,180 सुपर सरल. 1421 01:07:31,180 --> 01:07:33,010 बस मुक्त और फिर जो कुछ भी अपने सूचक, 1422 01:07:33,010 --> 01:07:34,843 जो भी नाम की अपने सूचक है, और यह 1423 01:07:34,843 --> 01:07:36,710 आप के लिए यह मुक्त कराने का ख्याल रखना होगा. 1424 01:07:36,710 --> 01:07:38,200 1425 01:07:38,200 --> 01:07:38,700 कूल. 1426 01:07:38,700 --> 01:07:40,410 1427 01:07:40,410 --> 01:07:42,530 >> तो फिर हम यह कर सकते है. 1428 01:07:42,530 --> 01:07:44,770 तो हम बस करने के लिए जा रहे हैं इस कार्यक्रम के माध्यम से चलना. 1429 01:07:44,770 --> 01:07:46,560 और फिर तुम लोग कर रहे हैं. 1430 01:07:46,560 --> 01:07:50,240 >> तो [अश्राव्य] सिर्फ मुख्य. 1431 01:07:50,240 --> 01:07:51,690 इसलिए हम कुछ पूर्णांक * सूचक है. 1432 01:07:51,690 --> 01:07:53,648 तो हम एक सूचक है कि ints आयोजित करने जा रहा है. 1433 01:07:53,648 --> 01:07:54,500 1434 01:07:54,500 --> 01:07:56,170 और कितने ints यह पकड़ करने के लिए जा रहा है? 1435 01:07:56,170 --> 01:07:57,400 1436 01:07:57,400 --> 01:07:58,170 बस एक. 1437 01:07:58,170 --> 01:07:59,400 1438 01:07:59,400 --> 01:08:01,100 एक पूर्णांक के आकार. 1439 01:08:01,100 --> 01:08:03,900 >> हम यह देखने के लिए जाँच सूचक है क्योंकि यह शून्य है 1440 01:08:03,900 --> 01:08:06,130 हम कुछ नहीं करते कहना चाहता हूँ, है. 1441 01:08:06,130 --> 01:08:07,065 यह बुरा है. 1442 01:08:07,065 --> 01:08:08,130 1443 01:08:08,130 --> 01:08:12,130 इसलिए हम बाहर कुछ त्रुटि प्रिंट स्मृति, सबसे अधिक बार 1, लौटने 1444 01:08:12,130 --> 01:08:14,260 तुम लोगों के रूप में किया जाता है. 1445 01:08:14,260 --> 01:08:17,390 >> और फिर हम हम यहाँ है हमारे संकेतक भिन्नता. 1446 01:08:17,390 --> 01:08:22,840 इसलिए कि हम स्टोर करने के लिए जा रहे हैं इसका मतलब हमारे पास किसी स्थान पर कुछ. 1447 01:08:22,840 --> 01:08:24,350 1448 01:08:24,350 --> 01:08:30,830 इंटरनैशनल * सूचक, या malloc, रिटर्न यह इस अलग सेट जहां का पता 1449 01:08:30,830 --> 01:08:31,750 आप के लिए स्मृति. 1450 01:08:31,750 --> 01:08:32,830 1451 01:08:32,830 --> 01:08:34,800 तो यह मूल रूप से है आप आप अगर like-- दे 1452 01:08:34,800 --> 01:08:38,149 का एक गुच्छा के बारे में सोचना एक पड़ोस में मकान 1453 01:08:38,149 --> 01:08:40,640 तुम डाल करना चाहते हैं अपने फर्नीचर में, malloc 1454 01:08:40,640 --> 01:08:43,850 ठीक है, जैसे आप मिलता है तीन घर जाना. 1455 01:08:43,850 --> 01:08:45,800 और यह आपको देता है घर तीन के पते. 1456 01:08:45,800 --> 01:08:48,775 >> तो यह ठीक है अब, इस सूचक भंडार एक पते, 1457 01:08:48,775 --> 01:08:50,149 अपने घर के पते के भंडार. 1458 01:08:50,149 --> 01:08:51,470 1459 01:08:51,470 --> 01:08:54,640 * पीटीआर साधन, ठीक है, मैं अपने घर पर हूँ. 1460 01:08:54,640 --> 01:08:55,326 कूल. 1461 01:08:55,326 --> 01:08:56,580 मैं कुछ पूर्णांक प्राप्त करने की जरूरत है. 1462 01:08:56,580 --> 01:08:59,229 >> तो अगर आप किसी के लिए पूछ रहे हैं अब आप फर्नीचर देने के लिए. 1463 01:08:59,229 --> 01:09:00,430 तो अगर आप कुछ पूर्णांक मिलता है. 1464 01:09:00,430 --> 01:09:05,100 और यह अपने सूचक में डालता जहां यह की ओर इशारा कर रहा है. 1465 01:09:05,100 --> 01:09:08,670 >> और फिर यह सिर्फ प्रिंट बाहर, आप जहाँ भी प्रवेश किया. 1466 01:09:08,670 --> 01:09:11,060 और फिर, संदर्भ. 1467 01:09:11,060 --> 01:09:15,649 तो यह है कि आप इस के लिए गया था की तरह है पता और आप वहाँ क्या था देखा. 1468 01:09:15,649 --> 01:09:17,120 1469 01:09:17,120 --> 01:09:17,630 कूल? 1470 01:09:17,630 --> 01:09:20,174 >> और फिर बेशक हम अपने सूचक मुक्त. 1471 01:09:20,174 --> 01:09:21,590 अपने सूचक मुक्त करने के लिए मत भूलना. 1472 01:09:21,590 --> 01:09:22,933 अशक्त के लिए जाँच करने के लिए मत भूलना. 1473 01:09:22,933 --> 01:09:24,349 अपने सूचक मुक्त करने के लिए मत भूलना. 1474 01:09:24,349 --> 01:09:27,270 आप आप से याद दो बातें हैं इस, या आपको याद रखना चाहिए कि. 1475 01:09:27,270 --> 01:09:27,770 हां. 1476 01:09:27,770 --> 01:09:31,590 दर्शक: [अश्राव्य] सामान ऐसे ही, चार * एस. 1477 01:09:31,590 --> 01:09:33,760 हम उन कैसे मुक्त कभी नहीं आए? 1478 01:09:33,760 --> 01:09:34,529 >> अध्यक्ष 1: हम्म? 1479 01:09:34,529 --> 01:09:36,450 >> दर्शक: तार की तरह उन रहे हैं? 1480 01:09:36,450 --> 01:09:39,160 आप तार कर रहे हैं कहा सिर्फ चार * एस की तरह, है ना? 1481 01:09:39,160 --> 01:09:41,200 तो क्यों हम तार मुक्त नहीं है? 1482 01:09:41,200 --> 01:09:43,204 >> अध्यक्ष 1: आप केवल करने के लिए मुक्त आप mallocing रहे हैं. 1483 01:09:43,204 --> 01:09:44,620 दर्शक: ओह, आप mallocing रहे हैं. 1484 01:09:44,620 --> 01:09:47,399 अध्यक्ष 1: तो malloc और नि: शुल्क दो बातें कर रहे हैं 1485 01:09:47,399 --> 01:09:49,000 आप हमेशा एक साथ होना चाहिए. 1486 01:09:49,000 --> 01:09:51,630 च खुला, च करीब दो बातें आप एक साथ होना चाहिए. 1487 01:09:51,630 --> 01:09:54,471 दोनों उन मामलों में, शून्य के लिए जाँच करें. 1488 01:09:54,471 --> 01:09:54,971 हां. 1489 01:09:54,971 --> 01:09:57,130 >> दर्शक: तो मुफ्त बस है कुछ और की अनुमति 1490 01:09:57,130 --> 01:09:59,690 बाद वहाँ जमा करने के लिए इस कार्यक्रम में इसका इस्तेमाल किया गया है? 1491 01:09:59,690 --> 01:10:01,946 >> अध्यक्ष 1: यह सिर्फ कह रहा है, ठीक है, मैं इस के साथ काम कर रहा हूँ. 1492 01:10:01,946 --> 01:10:03,320 आप इसे चारों ओर रखने की जरूरत नहीं है. 1493 01:10:03,320 --> 01:10:05,340 1494 01:10:05,340 --> 01:10:08,190 अन्यथा आपके कंप्यूटर होगा बस कोशिश की तरह है और वहाँ रहते हैं. 1495 01:10:08,190 --> 01:10:10,910 और फिर आप इसे चलाता can't-- बाद में स्मृति मुद्दों में. 1496 01:10:10,910 --> 01:10:13,660 आप हमेशा क्योंकि यह मुक्त करना चाहते हैं यह ठीक है, मैं कर रहा हूँ, अपने कंप्यूटर बताता है 1497 01:10:13,660 --> 01:10:15,190 स्मृति के इस स्थान के साथ किया. 1498 01:10:15,190 --> 01:10:17,190 आप इसे वापस कर सकते हैं मेरे लिए बाद में उपयोग करने के लिए. 1499 01:10:17,190 --> 01:10:19,250 1500 01:10:19,250 --> 01:10:20,500 कूल? 1501 01:10:20,500 --> 01:10:21,320 हां. 1502 01:10:21,320 --> 01:10:26,950 >> दर्शक: तो हम% घ इस्तेमाल किया बस एक डबल क्योंकि वह वापस आ रहा है, 1503 01:10:26,950 --> 01:10:28,330 या क्यों [अश्राव्य] is--. 1504 01:10:28,330 --> 01:10:30,170 1505 01:10:30,170 --> 01:10:31,620 >> दर्शक: आप% मैं उपयोग कर सकते हैं? 1506 01:10:31,620 --> 01:10:32,760 >> अध्यक्ष 1: आप% मैं उपयोग कर सकते हैं. 1507 01:10:32,760 --> 01:10:35,052 1508 01:10:35,052 --> 01:10:36,135 कोई अंतिम मिनट सवाल? 1509 01:10:36,135 --> 01:10:38,310 1510 01:10:38,310 --> 01:10:38,985 आगे बढ़ें. 1511 01:10:38,985 --> 01:10:40,610 दर्शक: मैं सिर्फ एक त्वरित सवाल है. 1512 01:10:40,610 --> 01:10:50,200 तो पीटीआर चर, that's-- जैसे, पूर्णांक * पीटीआर = malloc के साथ, 1513 01:10:50,200 --> 01:10:54,142 वह सिर्फ यह कह रहा है memory-- में एक जगह की ओर इशारा 1514 01:10:54,142 --> 01:10:55,600 अध्यक्ष 1: आप [अश्राव्य] चाहते हैं? 1515 01:10:55,600 --> 01:10:58,050 दर्शक: --that है आकार of-- नहीं, यह ठीक है. 1516 01:10:58,050 --> 01:11:01,292 लेकिन यह सिर्फ एक जगह में की ओर इशारा कर रहा है सिर्फ चार बाइट्स की तरह है कि स्मृति. 1517 01:11:01,292 --> 01:11:02,000 अध्यक्ष 1: ठीक है. 1518 01:11:02,000 --> 01:11:03,030 1519 01:11:03,030 --> 01:11:07,070 पूर्णांक कहते हैं की तो आकार malloc, ठीक है, मैं दूर चला जा रहा हूँ, 1520 01:11:07,070 --> 01:11:08,780 आप के लिए स्मृति के चार बाइट्स हैं. 1521 01:11:08,780 --> 01:11:10,700 यह चार पाता है कि जब स्मृति की बाइट्स, यह 1522 01:11:10,700 --> 01:11:14,030 आप पता वापस देता है यह शुरू होता है जहां की, 1523 01:11:14,030 --> 01:11:16,160 और कि संग्रहीत क्या है सूचक, या पीटीआर में. 1524 01:11:16,160 --> 01:11:17,510 1525 01:11:17,510 --> 01:11:18,010 अच्छा है. 1526 01:11:18,010 --> 01:11:18,742 1527 01:11:18,742 --> 01:11:21,700 तुम लोग सबसे अधिक से अधिक कम उलझन देखो मैं सूचक के बारे में बात करते हैं जब लोग, 1528 01:11:21,700 --> 01:11:23,670 इसलिए मैं अभी बहुत अच्छा महसूस कर रहा हूँ. 1529 01:11:23,670 --> 01:11:24,520 >> ठीक है. 1530 01:11:24,520 --> 01:11:27,960 हमेशा की तरह, आप लोग सब होना चाहिए अब तक अपने pset2 ग्रेड मिल गया. 1531 01:11:27,960 --> 01:11:32,769 मैं जानता हूँ कि कुछ wonky किया गया है इसे कहते हैं जहां चीजें, मान्य नहीं फार्मूला 1532 01:11:32,769 --> 01:11:33,310 या कुछ और. 1533 01:11:33,310 --> 01:11:36,166 आप की, कि सभी हो रही है अपने ग्रेड मेरी तरफ मान्य हैं. 1534 01:11:36,166 --> 01:11:38,040 तो मैं आपको भेज सकते हैं अपने ग्रेड के स्क्रीनशॉट. 1535 01:11:38,040 --> 01:11:39,011 1536 01:11:39,011 --> 01:11:41,760 बस मुझे और साथ ही आप कर रहे हैं पता है किसी भी ग्रेड या कुछ लापता 1537 01:11:41,760 --> 01:11:43,060 समझ बनाने के लिए प्रतीत नहीं होता. 1538 01:11:43,060 --> 01:11:43,720 मेरे पास आओ. 1539 01:11:43,720 --> 01:11:44,830 1540 01:11:44,830 --> 01:11:48,830 >> मैं आप की सुपर गर्व किया गया है लोग पहले से ही है, इसलिए इसे जारी रखो. 1541 01:11:48,830 --> 01:11:50,640 और अपने सप्ताह का एक अच्छा बाकी है. 1542 01:11:50,640 --> 01:11:53,440 मैं कुछ देखता हूँ मैं यकीन कार्यालय समय में आप की. 1543 01:11:53,440 --> 01:11:55,414