0:00
गर्स आज के इस वीडियो से हम लोग स्टार्ट करेंगे डाइनामिक मेमोरी अलोकेश�
0:03
एक बहुत ज़ादा इंपोर्टेंट टॉपीक है डाइनामिक मेमोरी अलोकेशन और डाइनामिक मेमोरी अलोकेशन एक जो नूप प्रोग्रामर होता ह�
0:09
जो कि प्रोग्राम्स को रटके, सिंटेक्स को रटके प्रोग्राम बनाता है और एक जो एक्सपीरियेंस्ट अच्छे प्रोग्राम लिखने वाला प्रोग्रामर होता ह�
0:15
उन दो को अलग बनाती है ये वीडियो बहुत ज़ादा इंपोर्टेंट होने वाला ह�
0:19
इसलिए इसको मैं बहुत ज़ल्दी स्टार्ट करूँगा अब डाइनामिक मेमरी अलोकेशन का आप लोगों ने नाम जरूर से सुना होग�
0:25
लेकिन क्या आप लोगों को मालूम है कि डाइनामिक मेमरी अलोकेशन को क्यों इस्तिमाल किया जाता ह�
0:30
आज के इस विडियो में मैं आप लोगों को पूरा मेमरी लेयावट बताऊंग�
0:36
आज के इस विडियो में मैं आप लोगों को पूरा मेमरी लेयावट बताऊंग�
0:42
आज के इस विडियो में मैं आप लोगों को पूरा मेमरी लेयावट बताऊंग�
0:48
आज के इस विडियो में मैं आप लोगों को पूरा मेमरी लेयावट बताऊंग�
0:52
आज के इस विडियो में मैं आप लोगों को पूरा मेमरी लेयावट बताऊंग�
0:56
आज के इस विडियो में मैं आप लोगों को पूरा मेमरी लेयावट बताऊंगा आज के इस विडियो में मैं आप लोगों को पूरा मेमरी लेयावट बताऊंग�
1:01
आज के इस विडियो में मैं आप लोगों को पूरा मेमरी लेयावट बताऊंगा आज के इस विडियो में मैं आप लोगों को पूरा मेमरी लेयावट बताऊंग�
1:04
आज के इस विडियो में मैं आप लोगों को पूरा मेमरी लेयावट बताऊंगा आज के इस विडियो में मैं आप लोगों को पूरा मेमरी लेयावट बताऊंग�
1:08
आज के इस विडियो में मैं आप लोगों को पूरा मेमरी लेयावट बताऊंगा आज के इस विडियो में मैं आप लोगों को पूरा मेमरी लेयावट बताऊंग�
1:12
आज के इस विडियो में मैं आप लोगों को पूरा मेमरी लेयावट बताऊंगा आज के इस विडियो में मैं आप लोगों को पूरा मेमरी लेयावट बताऊंग�
1:16
आज के इस विडियो में मैं आप लोगों को पूरा मेमरी लेयावट बताऊंगा आज के इस विडियो में मैं आप लोगों को पूरा मेमरी लेयावट बताऊंग�
1:20
आज के इस विडियो में मैं आप लोगों को पूरा मेमरी लेयावट बताऊंगा आज के इस विडियो में मैं आप लोगों को पूरा मेमरी लेयावट बताऊंग�
1:24
आज के इस विडियो में मैं आप लोगों को पूरा मेमरी लेयावट बताऊंगा आज के इस विडियो में मैं आप लोगों को पूरा मेमरी लेयावट बताऊंग�
1:28
आज के इस विडियो में मैं आप लोगों को पूरा मेमरी लेयावट बताऊंगा आज के इस विडियो में मैं आप लोगों को पूरा मेमरी लेयावट बताऊंग�
1:32
आज के इस विडियो में मैं आप लोगों को पूरा मेमरी लेयावट बताऊंगा आज के इस विडियो में मैं आप लोगों को पूरा मेमरी लेयावट बताऊंग�
1:36
आज के इस विडियो में मैं आप लोगों को पूरा मेमरी लेयावट बताऊंगा आज के इस विडियो में मैं आप लोगों को पूरा मेमरी लेयावट बताऊंग�
1:40
आज के इस विडियो में मैं आप लोगों को पूरा मेमरी लेयावट बताऊंगा आज के इस विडियो में मैं आप लोगों को पूरा मेमरी लेयावट बताऊंग�
1:44
आज के इस विडियो में मैं आप लोगों को पूरा मेमरी लेयावट बताऊंगा आज के इस विडियो में मैं आप लोगों को पूरा मेमरी लेयावट बताऊंग�
1:48
आज के इस विडियो में मैं आप लोगों को पूरा मेमरी लेयावट बताऊंगा आज के इस विडियो में मैं आप लोगों को पूरा मेमरी लेयावट बताऊंग�
1:52
आज के इस विडियो में मैं आप लोगों को पूरा मेमरी लेयावट बताऊंगा आज के इस विडियो में मैं आप लोगों को पूरा मेमरी लेयावट बताऊंग�
1:56
आज के इस विडियो में मैं आप लोगों को पूरा मेमरी लेयावट बताऊंगा आज के इस विडियो में मैं आप लोगों को पूरा मेमरी लेयावट बताऊंग�
2:00
इससे आप लोग मेमरी को रन टाइम पर एलोकेट कर सकते हैं मैंने आप पर क्या बात बोल द�
2:04
और यह किस तरह मैं इसको लोजीकली आप लोगों को एकस्प्प्रेंट करूँग�
2:08
कि इस विडियो के ऐंड तक आप भी बोलोगे आप पर यह बात हमें नहीं बालूम थी और आज क्लियर हु�
2:12
कि क्या होता है डाइनामिक मेमरी अलोकेशन तो यहाँ पर मैंने आप लोगों को बताय�
2:16
कि हम लोग रिक्वेस्ट कर सकते हैं मेमरी रन टाइम में यह नहीं जैसे जैसे प्रोग्राम चल रहा ह�
2:22
यूजर ने मनलो कोई बड़ा नाम इंपउट किया या फिर यूजर ने कोई ऐसा हमे�
2:26
इंटीजर दे दिया कि मेरा नाम इतना बड़ा है और उसके बाद हम उतनी ही मेमरी को अलोकेट कर द�
2:30
और जो मेमरी है उसको आगे यूज़ कर दे जाए फिर डिलीट कर दे फिर यूज़ कर द�
2:34
तो ये सारे काम हम लोग डाइनामिक मेमरी अलोकेट की मदबस से कर सकते है�
2:38
अब डाइनामिक मेमरी अलोकेट अभी इतनी बास सुनके आपको क्लियर नहीं होग�
2:42
जब तक मैं आप लोगो को ये नहीं बताऊंगा कि C प्रोग्रामिंग मे�
2:46
मेमरी लेयाउट किस तरह होता है किस तरह मेमरी हमारी मिलती है सारे के सारे वेरिबल्स क�
2:52
कौन सी चीज़ मेमरी के किस सेगमिट में स्टोर होती है ये सारी चीज़�
2:56
हम लोग अब बी डिसकस करेंगे लेकिन डाइनामिक मेमरी अलोकेशन अगर आप लोगो से कुछ�
3:00
कि क्या होता है तब आप लोगो का जवाब यह होना चाहिए कि डाइनामिक मेमरी अलोकेश�
3:04
तरीका होता है रन टाइम में मेमरी को अलोकेट करने का औ�
3:08
पर परवारत पर परवारत पर परवारत पर परवारत पर परवारत पर परवारत पर परवारत पर परवारत पर परवारत पर परवारत पर परवारत पर परवारत पर परवारत पर परवारत पर परवारत पर परवारत पर परवारत पर परवारत पर परवारत पर परवार�
3:38
परवारत पर परवारत पर परवारत पर परवारत पर परवारत पर परवारत पर परवारत पर परवारत पर परवारत पर परवारत पर परवारत पर परवारत पर परवारत पर परवारत पर परवारत पर परवारत पर परवारत पर परवारत पर परवारत पर परवारत प�
4:08
परवारत पर परवारत पर परवारत पर परवारत पर परवारत पर परवारत पर परवारत पर परवारत पर परवारत पर परवारत पर परवारत पर परवारत पर परवारत पर परवारत पर परवारत पर परवारत पर परवारत पर परवारत पर परवारत पर परवारत प�
4:38
परवारत कैसे होता है किस टरा होता है किस टरा होता है किस टरा होता है किस टरा होता है किस टरा होता है किस टरा होता है किस टरा होता है किस टरा होता है किस टरा होता है किस टरा होता है किस टरा होता है किस टरा होता है किस टरा होता है किस टरा होता है किस टरा होता है किस टर�
5:08
होता है किस टरा होता है किस टरा होता है किस टरा होता है किस टरा होता है किस टरा होता है किस टरा होता है किस टरा होता है किस टरा होता है किस टरा होता है किस टरा होता है किस टरा होता है किस टरा होता है किस टरा होता है किस टरा होता है किस टरा होता है किस टरा होता है किस ट�
5:38
होता है किस टरा होता है किस टरा होता है किस टरा होता है किस टरा होता है किस टरा होता है किस टरा होता है किस टरा होता है किस टरा होता है किस टरा होता है किस टरा होता है किस टरा होता है किस टरा होता है किस टरा होता है किस टरा होता है किस टरा होता है किस टरा होता है किस ट�
6:08
वरिबल वरिबल वरिबल वरिबल वरिबल वरिबल वरिबल वरिबल वरिबल वरिबल वरिबल वरिबल वरिबल वरिबल वरिबल वरिबल वरिबल वरिबल वरिबल वरिबल वरिबल वरिबल वरिबल वरीबल वरिबल वरिबल वरिबल वरिबल वरिबल वरिबल वरिबल व�
6:38
ताइसे की मानलो आपने किसी storage लिखता हूँ मानलो आपने किसी global
6:44
variable को initialize कर दिया आपने कह दिया कि बाई ये global variable की value 10 है तब वो इस segment में store होगा लेकिन अगर आ�
6:50
लोगने सिर्फ उसको डिकलियर किया आपने लिखा है इंट global variable बना है इंट आई और semi-colon लगा कि छोड़ दिया त�
6:56
वो bss segment में जाएगा और यह होता है uninitialized segment त�
7:00
मैं आपने लिख देता हूँ uninitialized segment और आप लोग बिलकुल इसके notes लिजे और यह understanding आप लोग को बहुत अल�
7:10
पर आपने लिख देता है आपने लिख देता है आपने लिख देता है आपने लिख देता है आपने लिख देता है आपने लिख देता है आपने लिख देता है आपने लिख देता है आपने लिख देता है आपने लिख देता है आपने लिख देता है आपने लिख देता है �
7:40
आपने लिख देता है आपने लिख देता है आपने लिख देता है आपने लिख देता है आपने लिख देता है आपने लिख देता है आपने लिख देता है आपने लिख देता है आपने लिख देता है आपने लिख देता है आपने लिख देता है आपने लिख देता है आ�
8:10
हीप हमारी ग्रोग करती है जब हम डाइनामिकली मेमोरी अलोकेट करते हैं तो यहाँ पर डाइनामि�
8:15
मेमोरी अलोकेशन जब हम करते हैं तब हमारी हीप बढ़ती है मेमोरी अलोकेशन त�
8:21
यहाँ पर हीप हमारी डाइनामिक मेमोरी करती है और हीप को यूज़ करना ही डाइनामि�
8:26
मेमोरी अलोकेशन होता है यह दो सेगमेंट के बारे में जरह डिटेल में डिसकस करेंग�
8:30
पहले दो सेगमेंट आपको आशा करता हूँ समझ में आ गए कि कोड सेगमेंट क्या है हमारा और स्टाटिक गलोबल वेरिब�
8:35
इन दो सेगमेंट में किस तना बढ़ा होता है डेटा सेगमेंट और बी एसेस सेगमेंट अब हम लोग क्या करेंगे आगे बढ़ेंगे और memory layout की बात करेंगे memory layout
8:44
अब यह memory layout में जिसे मालों मेरे पास एक प्रोग्राम है टीक है मैंने यहाँ पर इसको इंट्लूट किय�
8:49
मैं यहाँ पर white pen ले लेता हूँ मैंने यहाँ पर इस प्रोग्राम को stdio.h को इंट्लूट किय�
8:55
उसके बाद मैंने global variable बनाया दिखान देना आपलोग यह global variable है और यह initialized global variable है यह uninitialized है यह एक initialized global variable ह�
9:03
कोई भी global variable हो यह यह कहाँ पर आएगा हमारा global और static variable वाले segment में आएगा यहाँ प�
9:09
और हमारा यह जो पूरा code है जो instructions है वो इस code वाले segment में आएग�
9:14
तो मैं आपर इनको बना देता हूँ तो यह आएगा हमारा यहाँ पर code आएगा यह text segment है हमारा यह मैंने आपलोग को बता दिया था text segment और यहाँ पर हमारे global और static variable store हो जाएग�
9:27
यह भी हमको समझ में आ गया था global and static variables ठीक है और यहाँ पर data और bss में बटे होते हैं यह तो मैंने आपलोग को बताई दिया तब भी एक बर और लिख देता हूँ यहाँ पर data segment और bss segment इन दो में बटे होते हैं यह हमारा जो global static variables वाला segment होता है अब मैं आपर आपलोग को �
9:57
अब होगा क्या कि मैं यहाँ पर यहां से start करूँगा अपने program को यहां स�
10:02
instructions को read करना start करूँगा int bs equal to 344 हुआ फिर int तो क्या होग�
10:06
कि यहाँ पर stack में एक memory allocate हो जाएगी तो मैं यहाँ पर एक काम करता हू�
10:10
बनाता हूँ अब जैसे ही मेरा यहाँ पर main method start हुआ तो main क�
10:15
जितने भी variables हैं वो यहाँ पर main के stack frame में आएंगे अब य�
10:19
stack frame का क्या मतलब होता है stack frame का मतलब होता है कि list of all
10:23
the variables of that function to list of all the storage तो मैं variables को storage बोल रहा हू�
10:32
यहाँ पर जितने भी storage होगी function की वो सारी की सारी ए�
10:36
stack frame के अंदर आएगी तो main का stack frame एक बनेगा और उसक�
10:40
बाद जैसे ही main यहाँ पर func one में पहुँचेगा तब वो क्या करेगा यहाँ पर इसको रोख दिगा कहेगा भाई रुख जाओ रुख�
10:46
थेरो थेरो बोलने के बाद वो कहेगा कि आप function one क�
10:52
call करो तो क्या होगा इसके अंदर function one push हो जाएग�
10:55
अब मैं आपको stack के बारे में बहुती quickly बताता हूँ क्या होता है आप लोगों ने एक test tube देखा होगा test tube य�
11:03
फिर कोई भी एक छोटसा पाइप अगर आप लोगों ने test tube नहीं देखा है अगर आप लोग उसके अंदर एक रेड बॉल डालते हो पहले आपने ए�
11:09
रेड बॉल डाल दी इस test tube के ने तो क्या होगा ये रेड बॉल इस test tube के अंदर आजाएगी इसमें कुछ भी वो नहीं है और उसक�
11:16
बाद मान लो रेड बॉल के बाद मैंने उसके अंदर एक ऑरेंज बॉल डाल द�
11:20
यहाँ फिर ब्लू बॉल डाल देते हैं और उसके बाद मैंने आपर एक ब्लू बॉल डाल दी तो रेड बॉल डाली पहले और फिर ब्लू बॉल डाली तो मैंने क्या किय�
11:28
पुश किया रेड को फिर पुश किया ब्लू को अगर मैं निकालूंगा बाह�
11:35
तो सबसे पहले मुझे कौन सी बॉल निकालनी पढ़ेगी ब्लू निकालनी पढ़ेगी तो जो चीज बादमे डली जो चीज बादमे डली वो पहले निकलेग�
11:43
और यहाँ पर रेड जो पहले डली वो सबसे बादमे निकलेगी इसको कहते है�
11:48
लीफो लास्ट इन फस्ट आउट यानी कि जो लास्ट में इन घुसा वो फस्ट आउट निकलेग�
11:55
इसको कहते हैं लीफो तो लीफो हमारा जो होता है स्टाक हमारा लीफो के हिसाब से चलता ह�
12:01
इसलिए इसको स्टाक बोलते हैं अब यहाँ पर मैं क्या करूँगा फंक वन को अब इसको आप जो स्टाक फ्रेम है हमारा यहाँ पर एक स्टाक फ्रेम को आप एक बॉल मान ल�
12:10
टेके अब हमारा सबसे पहले कौन सा हमने पुश किया मीन फुश किया उसके बाद क्या हुआ उसके बाद मैंने फंक वन को पुश किय�
12:17
जब मैं फंक वन को पुश करूँगा यहाँ पर फंक वन के सारे के सारे वैरिबल्स यहाँ पर आ जाएंग�
12:21
मैं यहाँ पर लिख देता हूँ फंक वन को शॉर्ट में F1 लिख रहा हूँ मैं यहाँ पर और क्या होग�
12:25
यहाँ पर सारे के सारे इसके वैरिबल्स जो इसके लोकल वैरिबल्स हैं वो सारे के सारे फंक वन के यहाँ पर आ जाएंग�
12:31
और क्या होगा यह एक्सिक्यूट होना स्टार्ट हो जाएगा और तब तक के लिए में इंतिजार करेगा इसके रिटर्न होने क�
12:38
अब अगर मान लो फंक वन के अंदर मैंने एक और function कौल किया हुआ जो की मैंने एक्शल में किया हुआ जो की printf है जो की एक inbuilt function है stdio.h क�
12:47
तब क्या होगा उपर इसके एक और stack frame बनेगा printf का printf एक function है लेकिन इसका मतलब ये नहीं है कि ये कोई storage नहीं ले रहा है तो यह बिलकुल अपनी storage लेता है और यहाँ पर मैं printf लिख देता हूँ printf
13:00
तो यहाँ पर क्या होगा printf push कर दिया मैंने अब क्या होगा जैसे printf का execution तब तब तक के लिए क्या होगा जब printf रन हो रहा होगा तब यहाँ पर ये pause हो जाएगा ये क्या होगा pause रुक जाएगा ये कहा थैरो printf को पहले return होने दो देखते हैं printf क्या करता है उसको अपन�
13:30
काम करके तो मैं यहाँ पर printf को return कर दिया मैं क्या करूँगा इसको pop कर दूँगा यानि कि इसको हटा दूँगा तो मैं क्या करूँगा इसको इसको हटा देता हू�
13:36
मैं यहाँ पर तो मैं यहाँ पर इसको simply हटा देता हूँ तो मैंने इसक�
13:40
हटा दिया है और उसके बाद मैं क्या करूँगा funk1 भी क्योंकि मेरा return हो जाएगा अपना काम करके तो मैं यह b1
13:46
plus my value है यह लेकर चला जाओंगा main के पास और इसक�
13:50
मैं हटा दूँगा फिर क्या होगा यहाँ पर मैं आ जाओंगा और मेरा जो main है वो execute होना start हो जाएगा एक एक करक�
13:56
और फिर उसके बाद क्या होगा finally main भी return हो जाएगा तो इस तरह stack काम करती है हमारी अब यहाँ पर ह�
14:03
लोगों ने समझा stack की इस तरह काम करती है और यह आप लोगों बिलकुल अच्छी तरह समझ में आया होगा इस चीज क�
14:09
मैं एक बर और आप लोगों को code में करके दिखा दूँगा लेकिन आप लोगों समझ में आ गया है idea आप लोगों को हो गया होग�
14:15
मैं किस बारे में बात कर रहा हूँ अब main चीज आती है आप लोगों सोच रहे होगे कि यह heap होती ह�
14:21
dynamic memory जिस तरह मैंने बता ही है और यह बिलकुल सही बात भी है heap dynamic memory होती है लेकिन यह heap
14:27
को कभी use किया जाएगा अब क्या होता है जर्णली stack और heap होते हैं वो opposite direction में grow करन�
14:33
start करते हैं अगर stack इस तरह grow कर रही है तो heap वो इस तरह grow करती है अगर stack और heap मिल ग�
14:39
यहाँ कि आपने memory बहुत ज़ाथ इस्तेमाल कर लिए आपकी जो memory है वो आपने exhaust कर दिए पूर�
14:45
और आपका stack overflow हो जाएगी ठीक है तो अब हम लोग यहाँ पर आगे बढ़ेंगे और यहाँ प�
14:51
हम लोग बात करेंगे stack overflow की आपने stack overflow का नाम सुनाओगा और लोगों ने stack overflow को एक website स�
14:57
आगे समझा ही नहीं क्या होता है आज हम लोग बात करते हैं stack overflow की क्या होता है देखो compiler allocate करता ह�
15:02
some space for the stack part of the memory अब यह purely architecture पर depend करता है कितनी memory allocate होग�
15:08
लेकिन यह stack आपके हाथ में होती है एक good enough memory होती है जिसमें सारे के सारे function एक एक करके आते जाते है�
15:14
जाते जाते हैं आते जाते हैं जाते जाते हैं और finally जो है आपका जो program है वो run होता है अगर आपने किसी भी तरह इसक�
15:24
खतम कर दिया इसको कर दिया इसको कर सकते है एक example देता हूँ आ�
15:28
लोगो recursion अगर आप लोगों ने कोई ऐसा function लिखा कि एक func1 है उसके अंदर आपने func1 को ही call कर दिया तो क्या होग�
15:35
func1 को आपने call किया func1 अपने आपको call करेगा फिर वो अपने आपको call करेगा call करते करते stack जो है grow करत�
15:41
जाएगी करती जाएगी खतम होगी नहीं सिर्फ उसमें push होता जाएगा test tube में pop होगा नहीं test tube क्या होग�
15:48
test tube हमारा full हो जाएगा balls उसके अंदर से लीक कर जाएगी overflow कर जाएगी उसको बोलते ह�
15:54
तो मैं आशा करता हूँ कि आज आपको पता चल गयो का stack overflow क्या होता है और इसे के साथ सा�
15:59
मैंने आपको example लिखा हुआ है हम stack में क्या है मैंने आपलोगो जिस तरह अभी बताया सारे functions
16:05
को push करते जाते हैं और उसके बाद pop करते जाते हैं और वो lefo principle को follow करते हु�
16:11
जो है entry और exit लेते हैं last in first out टीक�
16:16
अब यहाँ पर हम heap के इस्तेमाल की बात करेंगे हीप की इस्तेमाल में ही dynamic memory का रास छुपा हुआ ह�
16:23
अब यहाँ पर lot of limitations of stacks टीके हमारे पास बहुत सारे limitations of stack क�
16:29
अब यहाँ पर अगर हमने मैंने आप लोगो बताया था एक मैंने आप लोगो limitation बताई थी कि एक हम को ऐसा array चाहि�
16:35
कि हम memory को most efficiently इस्तेमाल करते हुए अगर allocation करना चाहते हैं और हम मानलो कोई ऐस�
16:42
प्रोग्राम बना रहे हैं जो कि बहुत सारी memory को एक एक memory की save करना चाहते है�
16:49
efficiency के लिए तब हम लोग dynamic memory का इस्तेमाल करते हैं अब heap यहाँ पर एक अच्छी बात भी है और एक बुरी बात भी ह�
16:56
अच्छी बात क्यों है क्योंकि it can be used flexibly by the programmer
17:00
as per his needs बुरी बात क्यों है बुरी बात इसलिए क�
17:04
आपने गलती करी प्रोग्राम में तब आप लोग क्या करेंगे आप लोग heap के size को ग्रो करते जा सकते है�
17:10
और आपकी heap कभी भी रुकेगी नहीं और आपकी memory जो है जो प्रोग्राम ले रहा है वो बढ़ती चली जाएग�
17:16
अगर आपने सही से manage नहीं किया तो यह एक तरह से power की तरह है with great power comes great responsibility
17:22
जैसे जैसे आपके पास power आती है आपकी responsibility भी बढ़ती जाती ह�
17:26
इसलिए heap का इस्टिमाल बहुत ध्यान से करना चाहिए है और पूरी समझ रखे करना चाहिए है अब मैं आपर आप लोग क�
17:32
बताऊंगा कि use किस तरह करना है heap को तो हम लोग करते क्या है यहाँ पर हमारा जो program ह�
17:38
वो यह तीन segments को जैसे इस्टिमाल कर रहा है वैसे के वैसे वो इस तीन segments को इस्टिमाल करता जाता ह�
17:43
अब होता क्या है कि मैं अपने main method के अंदर यहाँ पर जो मेरा main का stack frame है वहाँ पर एक pointer बना सकता हू�
17:50
मैं कहूंगा एक pointer बनाओ और यहाँ पर मैं कुछ memory request कर सकता हू�
17:55
मैं कहूंगा मुझे एक array दे दो size 3 का integer array
17:59
मुझे एक integer array दे दो जिसमें तीन integers को store किया जा सकता ह�
18:04
और वो मुझे क्या करेगा वो कहेगा ठीक है बाई ले लो और मैं यहाँ पर एक pointer बनाओंगा और point करा दूंगा उसको यहाँ पर heap मे�
18:12
by any chance अगर मैंने इस pointer को override कर दिया और मैंने इस pointer को मनलो null कह दिया बाद मे�
18:19
तब यह memory जो है यह garbage बन जाएगी और यह memory
18:23
जो है मेरे program के usage में गिनी जाएगी मेरे program के usage में यह जो memory है वो गिनी जाएग�
18:31
और यह memory मैं जब तक कहूंगा नहीं compiler से कि बाई इसको free कर दो जब तक मैं यह बात बोलूंगा नही�
18:38
specifically command नहीं दूंगा अपने C program में कि इसको free कर दिया जा�
18:43
तक तक यह आपके लिए reserve रहेगी तो यह कुछ इसी थारा हो गय�
18:47
कि आप लोग एक घर का rent दे रहे हैं और इस घर में आप रह नहीं रहे हैं तो क्या आप कभी ऐसा करना चाहेंगे आपने कह दिया कि बाई मुझे यह घ�
18:54
चाहिए rent पे और आपने rent पे ले लिया घर और उसके बाद आप कहीं और चले ग�
18:59
आपने वहाँ पर भी एक घर ले लिया rent पे फिर आप कहीं और चले गए वहाँ पर भी आपने घर ले लिया rent में फिनली क्या होगा यह सारे के सार�
19:06
उनर्स आईंगे आपके पास और rent मांगेंगे आप से और आपका face क�
19:10
जिस तरह दिखाई देगा आप लोग बिलकुल भी खुश नहीं रहेंगे इसलिए जब भी हम लोग यहाँ पर एक pointer क्रियेट करते हैं हम लोग मै�
19:18
पॉइंटर को लिए पॉइंटर कर सकते हैं और एक memory block मे�
19:24
point कर सकते हैं यह सारी चीज़े किस तरह की जाती है�
19:28
हम लोग बात करेंगे मैं आप लोग को functions के बारे में बताओंगा specifically कौन से इस्तिमाल करने हैं dynamic memory allocation करने के लि�
19:34
अब यहाँ पर address stored by the local variable in the main function
19:38
यहाँ पर local variable मैंने बनाया एक int star ptr मैंने ए�
19:42
integer pointer बनाया और उस integer pointer को यहाँ पर point करा दिय�
19:46
उसके बाद मैं pointer arithmetic यूज़ करके इसके सारे के सारे variables को यूज़ कर सकता हूँ सारे के सारे memory blocks को यूज़ कर सकता हू�
19:53
लेकिन यहाँ पर एक catch यह है कि memory जब तक मैं specifically कहूँगा नहीं कि free कर दो तब तक वो memory free नही�
20:00
होगी और तब तक वो memory मेरे program के usage में गिनी जाएग�
20:05
यह अच्छी बात नहीं है और यह बिलकुल इसी तरह है जैसे मैंने आप लोग को यहाँ पर घर का example दिया कि आपन�
20:11
ले लिए लेकिन यहाँ पर आप उसमें रह नहीं रहे है और यह बिलकुल अच्छी बात नहीं है क्योंकि आप लोग space क�
20:15
wastage कर रहे हैं उसी तरह यहाँ पर भी आप लोग space का wastage करेंगे अगर आप लोगों ने किसी dynamic memory क�
20:20
point कर दिया memory बना कर और आपने फिर उस pointer को छोड़ दिया यहाँ पर इस्तिमाल नहीं किया लेकि�
20:25
generally अगर हम लोग इन चीज को सही से समझें और सारे के सारे functions को सही से इस्तिमाल करें memory को free
20:31
करते जाएं तब तक हम लोग we are good हम लोग यहाँ पर इस चीज का फायदा उठाएंगे बिल्कुल नुकसान में नही�
20:37
जाएंगे यहाँ पर हम लोगों ने देखा कि dynamic memory allocation किस तरह memory allocate करने के सहयक होती ह�
20:43
run time में अब मैं आप लोग आप लोग आप लोग को IDE में ले जाना चाहूँगा यहाँ पर मैं आप लो�
20:49
के बारे में अब नहीं बताऊंगा जिसे हम dynamic memory allocate करते हैं लेकिन मैं आप लोगों को बहुत interesting चीज दिखान�
20:55
वाला हूँ अभी IDE के अंदर तो चलो देखते हैं वो interesting चीज क्या है so guys मैं आचुक हूँ अपने visual
21:01
studio code के अंदर और मैं आप पर अभी करने क्या वाला हूँ एक नई फाइल बनाने वाला हूँ मैं आप पर अपनी पुरान�
21:07
जो code की files उनको overwrite ना करते हुए एक नई फाइल बनाऊंगा क्योंकि हमारा tutorial 45 है इसलि�
21:13
हम यहाँ पर tutorial 45.c के नाम से बनाएंगे उसी के साथ मैं यहाँ पर करूँगा क्या अपना जो मेरे user
21:19
snippet था main का उसको मैंने इस्तिमाल कर लिया अब मैं यहाँ पर आप लुगों को कुछ दिखाना चाहता हूँ और व�
21:24
चीज बहुत ज़ाधा interesting है और आप लोग सुने मेरी बात को धियान से मैं यहाँ पर क्या करूँग�
21:28
मैं यहाँ पर टर्मिनल में जाकिन निउ टर्मिनल पर क्लिक करूँगा मेरा टर्मिनल खुल जाएगा तो अग�
21:32
मैं यहाँ पर लिखूँ gcc और उसके बाद मैं यहाँ पर लिखूं capital tutorial45.c और उसके बाद मै�
21:41
सैमी कॉलन लगाकर यहाँ पर लिखूं size और उसके बाद मैं यहाँ पर लिखूं a.exe मैंने a.e लिखकर टैब दबाय�
21:48
आप लोग इसको मैनूली भी टाइब कर सकते हैं तो मैं इसको अगर एंटर मारूं तो यहाँ पर होगा क्य�
21:53
सबसे पहले मेरा tutorial45.c जो है वो compile हो जाएगा उसके बाद वो यह मेरा जो command है वो रन करेग�
21:59
तो आप इन दोनों कमांड्स को एके कर के भी रन कर सकते हैं यहाँ पर semicolon लगाने से क्या होगा यह दोनों कमांड्स दे के क�
22:04
के आपके रन हो जाएगे पहले gcc45.c रन होगा उसके बाद क्या होगा gcc45.c रन होने से आपक�
22:10
a.exe बनेगी एक फाइल और वो a.exe फाइल बनने के बाद आप लोग size कमांड्ड का स्टिमाल कर सकते है�
22:17
यह जो size utility है इसका स्टिमाल कर सकते हैं अब यह size होता क्या है size कमांड्ड हमार�
22:23
bytes में size बताता है text segment का data segment का bss segment क�
22:29
और total जो memory ली जा रही है उसका तो यह सारे की सारी चीज़ें हमारा size कमांड्ड बताता ह�
22:36
तो जिस तरह आप लोग size कमांड्ड का स्टिमाल कर सकते हैं मैंने आप लोग को यहाँ पर काफी information द�
22:41
यहाँ पर मैं फिर से ही बत mention करना चाहूँगा कि यह चीज़ की डिटेल में आप लोग मत चाहिए क्योंकि कभी कभी क्या होता है क�
22:46
आप लोग इसकी डेप्ट में ज़्यादा ना गोसें बस जो ग्रास्प करे�
23:00
अगले वीडियो में हम लोग देखेंगे कौन-कौन से functions जो dynamical हमको मदद करते है�
23:04
memory allocation करने के लिए तो हम लोग यहाँ पर उन functions को देखेंग�
23:08
अगले वीडियो में इसकी डेप्ट में ज़्यादा ना गोसें बस जो ग्रास्प करे�
23:14
आप लोग इसकी डेप्ट में ज़्यादा ना गोसें बस जो देखेंगे अगले वीडियो में इसकी डेप्ट में ज़्यादा ना गोसें बस जो देखेंग�
23:24
आप लोग इसकी डेप्ट में ज़्यादा ना गोसें बस जो देखेंगे आप लोग इसकी डेप्ट में ज़्यादा ना गोसें बस जो देखेंग�