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