0:00
So guys, हमने अपने पिछले वीडियो में देखा थ�
0:02
Dynamic Memory Allocation क्या होता है Stack, Heap, हमने काफी बड़े-बड़ी discussions
0:06
किये थे और इस वीडियो में मैं आप लोगों को बताऊंगा कि Dynamic Memory Allocation आप लोग कि�
0:10
किन functions की मज़से use कर सकते हैं, आप लोग किस तर�
0:13
actual में Dynamic Memory Allocation कर सकते हैं पड़ा था क्या बातें करीदे इन डायनेमिक मेमोरी अलोकेशन के बारे में मैंने आप लोगों को बताया था कि अगर ह�
0:34
एक एरे को एलोकेट करते हैं हम लोग कुछ इस तरह लिखते हैं इंट एर और और मान लोग दस लिखा तब यहां पर मै�
0:40
इंटीजर्स को स्टोर कर सकता हूं और यह मेरा कहां पर जाती है मेरी स्टार्ट में मैमोरी लोकेट होती है किस�
0:48
भी फंक्शन के अंदर अगर मैं इस चीज को डालता हूं तो होगा क्या कि उस फंक्शन की जो स्टैक है उसके अंदर य�
0:54
वरीबल बन जाएगा एक लोकल वरीबल और उसके बाद क्या हो वह डिस्ट्रॉय हो जाएगा जैसे फंक्शन रिटर्न करेग�
1:00
मैंने आप लोगों को ग्लोबल स्टार्टिक वरीबल्स के बारे में बताया था और आप लोगों को बताया था कि हमारा च�
1:04
प्रोग्राम होता है जो कोड होता है एक्चुअल वह भी हमारी कुछ मेमोरी लेता है उसके बाद हमने यहां प�
1:10
ही बात की थी और ही पर ही छुपी हुई है पूरी डाइनामिक मेमोरी ही ही होती है डाइनामिक मेमोरी ही पर मे�
1:17
allocation को ही कहते है dynamic memory allocation तो हम लोगों ने बोला था कि dynamic memory allocation एक तरीका ह�
1:23
जिसमें कि हम लोग एक data structure का size change कर सकते है�
1:26
runtime पर और हम लोग different तरह की memory different size की memory allocate कर सकते है�
1:32
runtime पर तो हम लोगों ने देखा था कि जो memory assign होती है एक C program को एक typical architecture में वो code
1:38
static global variable, stack और heap इन चार तरह की होती है इन चार जो segments होते हैं उनमें दी जाती है assign की जाती ह�
1:48
अब हम लोग यहाँ पर देखेंगे functions for dynamic memory allocation in C
1:53
कि C programming में dynamic memory allocation के लिए हमें कौन-कौन से functions की जरूरत ह�
1:59
अब dynamic memory allocation में क्या होता है जो हमारा heap segment होता है उसमें memory allocate होती ह�
2:05
मैंने आप लोगों को बताया था stack के बारे में heap के बारे में और code segment के बारे में और global and local variable के बारे मे�
2:11
इससे पिछले के पिछले videos में मैंने आप लोगों को discuss करके सारा कुछ बता रहा ह�
2:16
अगर आप लोगों ने C programming की playlist को access नहीं किया तो वो जरूर कर लेना अगर किसी ने भी वो वीडियो मिस कर दिया है त�
2:21
अब यहाँ पर dynamic memory allocation एकदम clear हो गया होगा सबको वो वीडियो देखने के बा�
2:25
और ये वीडियो देखने के बाद आप लोग कर पाएंगे actual में dynamic memory allocation
2:29
तो हमारे बास 4 functions होते हैं इस task को इस पूरे task को यह जो हमारी ही होती है उसमें मेमोरी को लोकेट करने के लिए चार फंक्शन होते हैं एक होता है मैं लॉक ए�
2:40
होता है कैलो एक होता है रियल लॉक एक होता है फ्री तो मैं लॉक लॉक रियल लॉक फ्री यह चार फंक्शन होते है�
2:47
तो ये चार functions होते हैं हमारे पास dynamic memory allocation के लिए, तो मैं यहाँ पर लिख देता हूँ, dynamic memory allocation के लिए
2:56
तो dynamic memory allocation अभी सब लोग को समझ में आ गया होगा सही से, अब हम लोग यहाँ पर वो चार functions एक एक करके देखेंगे
3:02
जो ये dynamic memory allocation करने में हमारी मदद करते हैं, पहला function है malloc
3:06
तो हम लोग यहाँ पर अब करेंगे क्या malloc को देखेंगे और malloc मे�
3:11
हम लोग सबसे पहले यह देखेंगे कि हमारा target क्या है हम लोग अग�
3:14
एक अपने basic target की बात करें तो हमारे पास यह है कि एक heap हमारे पा�
3:18
given है एक भंडार है heap का मतलब एक भंडार समझ लो मेमोरी का
3:22
जो की हमको मिल सकती है, जिसमें से मेमोरी, हम लोग यहाँ पर क्या करेंगे
3:27
एक int star pointer बनाएंगे, तो मैं यहाँ पर कहूँगा, int star ptr
3:31
और मैं चाहता हूँ कि, यह int star ptr को required amount of memory in heap
3:36
यानि कि जितनी memory मुझे heap के अंदर से चाहिए उतनी memory allocate करके मैं क्या कहू�
3:42
कि pointer को point करा दूं उस memory से ये काम करने के लिए malloc हमारे लिए बहुत जाधा सहायक होता ह�
3:49
अब ये काम किस तरह करता है वो मैं आपको code वगैरा लिखके बता दूँगा लेकिन अभी के लिए आप लोग सिर्फ सुनो मेरी बात को और information को absorb कर�
3:56
यहाँ पर देखो malloc की जो full form है वो है memory allocation
4:00
यह reserve करता है एक block of memory with a given amount of bytes
4:04
तो यहाँ पर मान लो मुझे 10 bytes चाहिए तो मैं malloc को दे दूँगा 10
4:08
और उसी के साथ मुझे 100 bytes चाहिए तो मैं malloc को दे दूँगा 100 लेकिन actual में हम लोग क्या करते ह�
4:14
size of operator का इस्तेमाल करते है ये सारे काम किस तरह करते ह�
4:17
मैं आप लोग को visual studio code के अंदर ले जाके बताऊंगा अभी के लिए आप लोग ये समझ ल�
4:22
यह रिजर्व कर लेता है एक ब्लॉक ऑफ मेमोरी जितना हमने बोला इसको भाई इतनी बाइट हमको चाहिए हमको इतन�
4:29
स्पेस चाहिए यह बोलेगा ओके यह रहा आपका पॉइंटर जो कि पॉइंट करता है हीप के अंदर इतनी स्पेस को ठीक ह�
4:37
तो heap के अंदर point कर देगा, मान लो मैंने 10 byte यहाँ पर request करी
4:41
तो वो 10 byte यहाँ पर लेके heap में, और उसका जो pointer है, वो आपको return कर देगा
4:46
अब होता क्या है यहाँ पर, return value होती है एक void pointer
4:50
वो बोलेगा कि बाई, जो pointer है, वो void pointer है, आप इसको typecast कर लो जिस एसाप से आपको memory को use करना ह�
4:56
अब मान लो मुझे यहाँ पर integer array बनाना है एक integer dynamic array बनाना ह�
5:01
तब मैं क्या करूँगा उसको int star में typecast कर लो मैं कहूँगा ठीक है भाई मुझे void pointer दे द�
5:06
मैं int star की typecasting लगा दूँगा उसके पीछे और वो एक integer pointer बन जाएग�
5:11
मेरा काम हो जाएगा उसी के साथ साथ यहाँ पर हम लोग देखेंग�
5:16
इसके बाद type casting के बाद कि अगर हमारी space insufficient है मान ल�
5:21
heap है हमारी मान लो n size की और आपने मान ल�
5:26
memory n plus 1 size की अब उसको मना करना पड़ेगा योगी जब जगा नहीं है तो आपको कहां से देग�
5:31
अगर किसी के पास 10 टॉफियां है आप उससे 11 टॉफियां मांग ल�
5:35
तो वो आपको एक और टॉफी कहां से लाके देगा तो आप लोगो करन�
5:39
क्या है यहाँ पर यह चेक करना है कि जो pointer आपको मिल रहा ह�
5:43
return में कहीं वो null pointer तो नहीं है क्योंकि अगर वो null pointer ह�
5:48
तो इसका सिर्फ एक मतलब है कि memory allocation नहीं हो पाय�
5:52
memory जो है हमारे पास जो space है वो insufficient पड़ गई कहा हीप के अंद�
5:57
हीप के अंदर memory insufficient हो गई हीप के अंदर अब यहाँ पर जितनी भ�
6:04
values होती है memory की वो garbage value से initialize हो जाती ह�
6:08
तो ये भी हम लोग को एक point दिहान में रखना है syntax इसका कुछ ऐसा ह�
6:12
कि अगर मैं यहाँ पर बनाओ एक int star ptr semi colon लगा द�
6:17
फिर उसके बाद मैं लिखूं ptr is equal to मैं कहूँगा ptr is equal to
6:22
int star int star लिखने के बाद मैं लिखूंगा मैं lock और उसके बाद मान लो मैं यहाँ पर लिखूंग�
6:29
3 into size of int अब size of operator का क्यों इस्तेमाल किय�
6:35
मैंने directly यहाँ पर 4 क्यों नहीं लिख दिया यहाँ फिर 2 क्यों नहीं लिख दिया जो कि मुझे पता नहीं कि इस architecture मे�
6:40
क्योंकि अगर मान लो मैं एक computer में रन कर रहा हूं अपने प्रोग्राम को वहां पर इंट का साइज हो सकता है 2 बाइट किसी दूसरे कंप्यूटर में अपन�
6:48
दोस्त को मैंने वही प्रोग्राम भेजा मेल करा तो उसके में अगर साइज ओफ इंट जो है वो कुछ और है तब प्रॉब्ल�
6:54
PK Kellogg Kellogg Dynamic Memory Allocation Kellogg Kellogg
7:33
contiguous allocation तो यहाँ पर Kellogg simply Mellock की तरह होता ह�
7:39
सब कुछ same होता है जो different होता है वो मैं आप लोग को बताऊंगा यह n blocks reserve करता है memory क�
7:44
with the given amount of bytes तो आप लोग यहाँ पर बोलें कि मुझ�
7:49
10 integer चाहिए कुछ इस तरह आप लोग बोल सकते हैं यहाँ पर मुझ�
7:53
50 characters चाहिए, तो आप इस तरह से input को दे सकते हैं, तो ये क्या करेग�
7:58
simply आप लोग को memory पकड़ा देगा, कहाँ पर हमारे उसी भंडारे के अंदर, क्या नाम है उस भंडारे का heap
8:04
हमारी जो heap की जो memory है, जो की free to use memory ह�
8:08
जो की publicly available जन हित में जारी memory है वो यहाँ पर कोई भी ले सकता ह�
8:13
आप लोग ले सकते हैं इसमें से memory और उसको आप PTR को यहाँ प�
8:19
क्या कर सकते हैं PTR के अंदर store कर सकते हैं उसके pointer क�
8:23
तो वो एक pointer आपको return करेगा कौन? Kellogg Kellogg आपको एक pointer return करेग�
8:27
और उस pointer को फिर आप type casting वगैरा करके इस्तेमाल कर लोग�
8:31
यहाँ पर यह भी void pointer return करता है और जिस तरह हमने malloc में देखा था कि type casting करनी पड़ती ह�
8:38
यहाँ पर भी करनी पड़ती है तो आप लोग यहाँ पर बिल्कुल malloc वाली बात को लागू करा दे�
8:44
और जिस तरह हम लोग malloc के अंदर यहाँ पर void pointer बनाते थे उसी तरह यहाँ पर Whiskey pointer बनके आपको type casting करनी पड़ेगी आपके appropriate data type में उसे के साथ साथ यहाँ पर आप लोग को देखना है कि अगर आपकी space insufficient पड़ जाती है तो memory का allocation fail हो जाता है और हमारा calloc एक null pointer को return करता ह�
9:04
यहाँ पर एक difference वाली बात जो है वो यह है कि आपकी सारी allocated memory 0 से initialize हो जाती ह�
9:12
मैं lock में किस से होती थी garbage value से होती थी एक बहुत बड़ा difference और आप लोग इसको note down कर लो सब के स�
9:19
कि जो हमारा malloc होता है वो allocated memory को initialize करा देता है garbage value से और जो calloc होता ह�
9:26
वो zero से initialize करा देता है syntax की बात करो तो बिलकु�
9:30
malloc के जैसा बस जब हम size of यहाँ पर size देते थे bytes मे�
9:34
तब यहाँ पर हम दो number देते हैं तो कितने blocks चाहिए औ�
9:38
कितने size के चाहिए यहाँ पर हम क्या करते थे यहाँ पर multiply कर दे थे 3 multiply पर size
9:44
of int करके जो total size in bytes था वो input लेता थ�
9:48
मैं log लेकिन calog हमारा क्या करेगा calog हमारा दो numbers को लेगा input में पहला लेगा क�
9:54
कितने blocks चाहिए और वो blocks कितने size के हो तो ये द�
9:58
arguments है कितने blocks चाहिए वो blocks कितने size के हो कितने blocks चाहिए वो blocks कितन�
10:04
size के हो as simple as that एकदम simple है बस heap का इस्तेमाल हो रहा है यहाँ प�
10:10
और हम लोग यहाँ पर pointer return करके उसको इस्तेमाल कर रहे हैं करके दिखाओंगा आप लोगों को visual studio code के अंद�
10:15
आप लोग बिल्कुल tension मत लेना है code लिखेंगे हम लोग बिना code के कुछ नहीं होता ह�
10:19
यहाँ पर reallocate की बात करते हैं reallocate का मतलब होता है reallocation
10:23
अब यहाँ पर मैं आप लोगों को बताता हूँ कि अगर आप लोगों ने यहाँ प�
10:27
मानलो heap में कुछ memory आपने यहाँ पर PTR के अंदर dynamically allocate कर दिय�
10:34
तो PTR आपका point कर रहा है मानलो इन चार blocks से एक दो तीन चा�
10:39
अब मान लो आपको उसी प्रोग्राम के अंदर जरूरत पड़ती है आठ ब्लॉक्स क�
10:43
लेकिन आपको ये PTR की जरूरत नहीं है अब यानि कि आ�
10:47
इस PTR को ही ओवर राइट करके वापस से एलोकेट करना चाते हैं कि memory
10:51
यह बहुत बड़ा resource है मैंने आप लोग को पहले भी बताया है और memory को आप लोग waste नहीं करना चाहेंग�
10:56
आप लोग memory को reallocate अगर कर पाएं किसी तरीके से तो यह बहुत बढ़िया होग�
11:02
तो dynamically allocated memory अगर insufficient है है यानि कि मैंने पहले पीटी आर बनाया एक चार ब्लॉक का उसको इस्तेमाल कर लिया लेकिन मेरे अगले एक्शन क�
11:12
लिए तो यह मेरा एक्शन वन था और मेरा यहां पर एक्शन टू जो था मेरा उसके लिए मुझे जो पॉइंटर है उसमे�
11:21
थोड़े से और blocks चाहिए थे, तो मैं क्या करूँगा, realloc का इस्तेमाल करूँगा
11:26
यह भी आपको करके दिखाऊँगा, और हम लोग change कर सकते हैं, size of previously allocated memory
11:32
using realloc function, तो यह realloc का काम होता है, simple सा
11:36
कि जो पुराना pointer है, उसको लेगा, और नया pointer return करेग�
11:39
नए size के साथ as simple as that, बिल्कुल simple है syntax की बात करें, तो ptr is equal to
11:46
जो हमारा int star, care star जिस पी तरह का pointer है व�
11:50
realloc पुराना pointer और उसके बाद यहाँ पर हम क्या करेंगे new size in bytes कर देंग�
11:56
तो नया size हम दे देंगे उसको बोलेंगे बाई अब हमें इतना size चाहि�
12:01
पहले जो ptr था उसमें 36 bytes थे यार अब मुझे 4 और bytes की ज़रूरत ह�
12:07
मुझे 40 bytes allocate करके वापस से return करो point है तो इस तरह हम लोग इस्तेमाल कर सकते है�
12:13
realloc को आशा करता हूँ इकदम clear हो गया होगा सबको मुझे comment में आप लोग बता दिया कर�
12:18
और आप लोग like करते हो तो मुझे पता चलता जाता है कि आप लोगो समझ में आ रहा है और मुझे comment करके आप लोग specifically बता होग�
12:24
कि मुझे समझ में आ रहा है तो मुझे बहुत अच्छा लगेगा और कोई भी चीज समझ में नहीं आ रही है तो वो भी kindly मुझे जरूर से बताए�
12:30
तो हमने यहाँ पर देखा था कि किस तरह हम लोग memory allocate करेंगे free जो होता है वो क्या करता है free कर देता है आपकी allocated memory क�
12:37
तो अगर आप लोगों ने कोई ptr नाम का pointer बनाया ह�
12:41
और उसके बाद आपने को जिस तरह लिख दिया PTR is equal to int star malloc और उसके बाद आपने लिख दिया 3 into size of int ठीक है मैंने यहाँ पर size of int वैसा लिखा है समझ जाना आप लोग तो क्या होगा PTR में 3 integers मेरे हैं मैं PTR को point करा रहा हूँ एक ऐसे memory block को जहाँ पर मैं 3 integers को store कर सकता हूँ pointer arithmetic �
13:11
memory द्वारा allocate की memory मुझे नहीं चाही है मुझे अब नहीं चाही है मेरा काम हो चुका है तो मैं क्या करूँगा उस memory को पकड़ के नहीं बैठा रहूँगा मैं उसको free कर दूँगा उसको मैं free कर दूँगा और यहाँ पर क्या होगा free function की मदद से मैं free कर दूँगा अब आप लो�
13:41
कोई दूसरा आदमी उसी डंबल को इस्तेमाल कर लेता है तो आप लोग डंबल को पकड़कर नहीं रखते हैं जब तक कि आ�
13:47
लोग कोई काम ना कर रहे हो आप लोग यहां पर डंबल को फ्री कर देते हैं उसी तरह आप लोग फ्री फंक्शन की मद�
13:53
memory को free कर देते हैं कि अब मुझे यह memory नहीं चाहि�
13:57
यानि कि अब इस memory का उपयोग कोई और कर सकता ह�
14:01
अब यहाँ पर free हो जाती है memory और हमारा syntax एकदम simple सा ह�
14:07
एकदम damn simple हमारा जो concept है यह free का उतना ही इसका simple syntax भी ह�
14:12
syntax में आप लोगों सिम्पली free लिखना है और free करके pointer दे देना है उसके अंद�
14:17
और होगा क्या कि ये free कर देगा memory को जो वो pointer hold करके बैटा थ�
14:22
mention करना चाहूँगा जितने भी syntax मैंने लिखे हैं वापस semicolon जरूर से आएग�
14:26
तो अगर मैंने यहाँ पर semicolon नहीं लगाया तो यहाँ भी semicolon आएगा और यहाँ semicolon नहीं लगाया तो यहाँ भी semicolon जरूर से आएग�
14:33
और उसी तरह हमारा malloc के अंदर भी semicolon आएगा तो ये सारी चीज़े हम लोग code के अंदर लिखेंगे तो थोड़ा जादा मज़ा आएग�
14:39
तो हम लोग dynamic memory allocation का किस तरह इस्तेमाल कर सकते हैं ये तो आप लोगों ने देखी लिय�
14:44
IDE code IDE code concepts dynamic memory allocation functions efficient C programs
15:03
so guys video studio code में जाने से बहले आप लोगों को बताना चाहूँगा तो कि अगर आप लोग ने C programming की इस playlist को access नहीं किया तो kindly कर लें क्योंक�
15:09
मेरे बाद बीच-बीच में काफी comments आते हैं कि आपने for loop बता दिया ये नहीं बताय�
15:14
मैं चाहता हूँ सब लोग इसको देखे playlist को सब लोग bookmark करे�
15:17
नए टैप में खोलकर अभी के अपने आप लोगों के लिए अगर आप लोग इस कोर्स को अच्छे से और इस कोर्स से ज्यादा से ज्यादा सीखना चाहते हैं त�
15:26
अब मैं आ जाऊंगा यहाँ पर अपनी ID के अंदर और यहाँ पर ID के अंदर tutorial47.c के नाम से एक file बनाओंग�
15:33
तो मैं यहाँ पर लिख दे दाओ tutorial47.c और यहाँ पर अपना user snippet जो मैंने बनाया हुआ है mean2 का वो ले आता हू�
15:40
user snippet मैंने आप लोगों पिछले videos में बताया है आप लोग ये type भी कर सकते हैं अगर आप लोग ये shortcut बनाना नहीं जानते हैं त�
15:46
और by any chance अगर आप लोगों ने पिछले videos नहीं देखे हैं वैसे ऐसा करना नहीं चाहिए आपको but anyways
15:52
अब हम लोग यहाँ पर करेंगे क्या dynamic memory allocation का इस्तेमाल करेंग�
15:56
यहाँ पर एक बहुत important बात सबसे पहले आप लोग को जो बताना चाहूँग�
15:59
वो यह है कि जो dynamic memory allocation करने की function मैंने आप लोग को बताया ह�
16:04
वो stdlib.h के अंदर आते हैं तो stdlib.h को आप लोग include कर ले�
16:10
string.h में use नहीं कर रहा हूँ अभी इसलिए मैंने हटा दिया है उसको तो यह बहुत important चीज़ है एक बहुत important बा�
16:15
कि यह जो caloc, malloc और realloc होते हैं वो stdlib.h के अंदर defined होते है�
16:21
अब मैं यहाँ पर आप लोगों को सबसे पहले malloc का usage बताओंग�
16:25
तो मैं use of malloc यहाँ पर लिख देता हूँ और यहाँ पर मैं करूँगा क्य�
16:29
एक int star ptr बनाऊँगा int star ptr बनाऊँगा और उसी के साथ साथ मैं क्या करूँग�
16:36
इसमें dynamically memory को allocate करूँगा तो मैं यहाँ पर लिख दूँग�
16:40
ptr is equal to लिखूँगा int star यानि कि int star में मैं type cast करूँग�
16:46
लिखूँगा maloc और उसके बाद लिख दूँगा 10 multiply by size of
16:52
int इससे होगा क्या मेरा 10 size का क्या बन जाएगा एक array
16:57
बन जाएगा एक dynamic array बन जाएगा तो मैं क्या करूँगा यहाँ प�
17:01
अब यह 10 size का array यहां पर मेरा बन गया तो मैं इसको एक बार रन करके आप लोगों को दिखाता हूँ और हम लोग रन करके क्यों देखते है�
17:08
बीज़ वेशन प्रोग्राम्स कभी भी कोई भी बड़ा प्रोग्राम लिख रहे हैं आप छोटा प्रोग्राम लिख रहे हैं या फिर कोई भ�
17:12
exercise solve क्यों ना कर रहे हो मैं चाहता हूँ कि आप लोग program को run करक�
17:17
जरूर देखें उससे होता क्या है program को run करने से program को run करने से confidence मिलता है क्योंकि हाँ भा�
17:23
कोई error नहीं आया अभी तक और अगर कोई error नहीं आया अभी तक इसक�
17:27
मतलब सारी की सारी चीज़ें एकदम अच्छी तरह चल रही है, उसी के साथ आप right लिख करके format document करेंगे
17:32
तो यहाँ पर साथी spaces वगैरा अच्छे से, यह आप लोग को beautify करके दे देगा program
17:37
यह भी मैं recommend करता हूँ, उसी के साथ साथ, अब हम लोग यहाँ पर देखेंगे
17:40
किस तरह हम लोग फॉर लूप लगाकर यहां पर क्या कर सकते हैं इसको हम आराम से प्रावर्स कर सकते हैं यूजर स�
17:49
इनपुट ले सकते हैं और फिर प्रिंट कर सकते हैं वैल्यूज को तो मैं यहां पर क्या करूंगा लेस्ट एंड टेन कर दूंग�
17:55
इन से चम्मच लिखता हूं यहां पर ताकि मैं अच्छे सारा आप लोगों से डेमोंस्ट्रेट कर सको तो एक छोटा सा मैंने आपक�
18:00
परेजर एरे बनाया है और मैं आप अपने स्कैन अफ लिखूंगा और स्कैन अफ लिखकर मैं आप लिखूंगा परसेंटेज डी औ�
18:07
यहां पर एम परसेंट क्या लिखूंगा हम परसेंट लिखूंगा पीटी यार आई क्योंकि यह मैंने एरे बनाया पीटी आराइड क�
18:14
मतलब है पीटी आई का मतलब कुछ नहीं है है स्टार पीटी आई प्लस आई यानि कि वैल्यू एड पॉइंटर प्लस आ�
18:22
बनी आपको पॉइंटर एडिटमेटिक वाली वीडियो में बताया था अभी के लिए आप लोग यह समझ लो कि डाइनामिकली अलोकेटि�
18:28
लेकर हम कुछ इस तरह यहां पर ऐसे लिख सकते हैं और वैल्यू हम ले सकते हैं तो यह प्रिंट अगर मैं यहां प�
18:34
लिखूं मैं वह लिखूंगा एंटर दी वाल्यू नंबर यहां पर आ��요ज़ाइएगा मेरा आई और ऑफ दिस एरे और आप इस एरे और मै�
18:45
यहां पर क्या लिखूंगा यह लिखने के बाद मैं यहां पर आई दूंगा कंट्रोलेस सेव करूंगा अब क्या होगा एक-ए�
18:51
करके मैं वाल्यूस को इनपुट कराता जाऊंगा कराता जाऊंगा मालों वन फिर टू फिर थ्री अब 123 मैंने दी दिया ए�
18:58
अब मैं अगर इसको प्रिंट करा हूँ एरे को डायनेमिकली एलोकेटेड एरे को तो मैं यहाँ पर क्या लिखूंगा द�
19:05
वैल्यू ऑफ मैं यहाँ पर लिखता हूं थी वैल्यू ऑफ परसेंटेज टर्प एट मैं यहाँ पर लिखता हूं वैल्यू आट प�
19:12
यह पर मैं लिख दूंगा पीटी आर आई ठीक है पीटी आर कुछ नहीं है कि आर्य की तरह आप लोग इसको यूज करें बस य�
19:21
कि डाइनाविकली अरोकेट किया गया है और यहां पर यह पर स्कैन आफ को हटाई देता हूं कंट्रोल से सेव किया र�
19:28
किया तो मैं यहां पर एक क्वालिंग करूंगा इस बार 56 और साथ दूंगा और उसके बाद देखो यहां पर मैंने इसक�
19:33
पीटी आई को प्रिंट सही से किया कि नहीं तो मैं यहां पर परसेंटेज डी नहीं लिखा तो मैं इसको ठीक करता हूं वाप�
19:40
रन करता हूं 567 यहां पर 567 प्रिंट हो गया अगर मैं इसको यहां पर चार कर दूं और सेव करूं उसके बा�
19:48
मैं रन करूं इसको और 567 करके और अगला वाला मेमोरी जो मेरा एड्रेस है उसको मैं यूज कर उसको मैं प्रिं�
19:56
बनाने की कोशिश करूं तब क्या होगा गार्बेज वैल्यू प्रिंट होगी क्योंकि मैंने एरे बनाया है तीन साइज करत�
20:03
मैं चार यहां पर कैसे लिख सकता हूं तो यह सिर्फ एक हल्का सा टेस्ट आपको देना चाहता था कि अगर आप लोग बाह�
20:08
जाते हैं बाउंड से तो क्या होता है तो इसी तरह आप लोग बड़े-बड़े ऐसे बना सकते हैं और यहां पर उसी तरह आ�
20:14
लोग क्या कर सकते हैं यहां पर प्रिंट एफ की मजबूत से एंटर दी साइज ऑफ द एड्री यू वांट टू प्लीट ठीक है कु�
20:21
भी कर सकते हैं आप लोग कि आप कितने साइज का एरे बनाना चाहते हैं उससे होगा क्या उससे अब आप लोग यहा�
20:27
पर आराम से लिख सकते हैं कि आप कितने साइज का एरे बनाएंगे बैक्सलेस चैनल में यहां पर लगाओ और उसके बा�
20:33
scanf का इस्तेमाल करते हुए, मैं यहाँ पर एक i भी बना देता हूँ, variable int i लिख देता हूँ
20:39
और उसके बाद मैं यहाँ पर लिखूँगा, mentalize करूँगा, percentage d, m% i कर दूँगा
20:45
m% i, और यहाँ पर मैं i लिख दूँगा, यहाँ पर मैंने i नहीं लिखना चाहिए था, मैंने n लिखना चाहिए था, यह i मैं already इस्तेमाल कर रहा हूँ, ठीक है, मैं n लिख दूँगा, और यहाँ पर भी मैं क्या करूँगा, n लिखूँगा, और यहाँ पर भी मैं क्या करूँगा, n लिखूँगा, तो अगर n की value को �
21:18
तो उल्टा जाऊंगा, 987654321 और 0, यह देखो 987654321, जी तो इस तरह हमने dynamically allocate किया है
21:30
मैं मैलॉक की मदद से और मैं यही काम कैलॉक की मदद से भी कर सकता था, अब यहाँ पर कैलॉक की मदद से अगर मैं करता है
21:37
तो मैं एन कॉमा लिखूंगा तो मैं यहां पर एक काम करता हूं यूज आफ मैंने मैलोग लिखा है इसको कॉपी करूंग�
21:43
कमेंट आप करूंगा और इसके बाद नीचे आ जाएगा और यहां पर यूज आफ कैलोग करूंगा मैलोग की जगह अगर मैं यहां प�
21:51
कैलॉक को इस्तेमाल करना चाहता हूं तो मैं कैलॉक के सिंटेक्स को यूज करूंगा जो कि क्या होता है एन कॉमा साइ�
21:56
ऑफ इंट सब कुछ सेम रहेगा रन करूंगा और यहां पर जैसे मैं इसको रन करूंगा आप लोग देखो यहां पर मैं ती�
22:03
लिखता हूं वांट टू थ्री लिखता हूं और मैं प्रेंट कर पा रहा हूं वन टू और थ्री जिस सारा मैं मैं लॉग की मद�
22:10
से कर देता है कैलोग भी मैंने उसी तरह यूज किया एक चीज यहां पर आप लोगों दिखाना चाहूंगा कि अगर मैं आप प�
22:38
दैरी यू वांट टो क्रिएट तो मैं यहां पर चार लेकर मेरा कोड रनर फॉर सम रीजन हैंग कर रहा है तो मैं यहां पर करूंग�
22:45
जाकर इसको डिलीट कर देता हूं इसको कैंसल कर देता हूं प्रोग्राम को तो कभी-कभी कोट रनर क्या करता ह�
22:51
हैं हो जाता है पॉजिशन एनीवेज तो मैंने इस प्रोग्राम को रन किया वापस से और यह मुझसे पूछेगा यह एंट�
22:57
इस तरह जैसे ही मुझसे पूछेगा इंटर साइज अब देव यह वांट टू क्रिएट में आप चार लिखता हूं अगर तो यह सारी क�
23:04
सारी मेमोरी लोकेशन जो थी उनको जीरो से इनिशिलाइज कर दिया यह एक एक्स्ट्रा ओवर हेड होता है कैलॉक में इसीलि�
23:11
आप लोगों को जो memory है location है हमारी उनको 0 से initialize नहीं करवाना है तब आप लो�
23:18
calog का इस्तेमाल ना करें जो कि अगर आप लोग calog का इस्तेमाल करेंगे तब होगा क्या कि आप लोग calog क�
23:25
इस्तेमाल करके सारे के सारी जो values अनको 0 से initialize कर देंगे और 0 से initialize करना ए�
23:31
एक एक्स्ट्रा ओवर है तो एक एक्स्ट्रा मेहनत होती है और एक्स्ट्रा आप कुछ नहीं करना चाहेंगे यह आपक�
23:37
प्रोग्राम में इन एफिशेंसी को ऐड करेगा कोई भी चीज अगर आप एक्स्ट्रा करेंगे अपने प्रोग्राम में तो यह ची�
23:42
आप लोग को ध्यान में रखनी है यह एक बात होगी तो यहां पर मैं इनपुट जो ले रहा था वह लेता रहूंगा और आ�
23:48
लोग इस तरह कैलोग का इस्तेमाल कर सकते हैं अब हम लोग बात करेंगे जी लोग की तो मैं यहां पर करूंगा कि इसक�
23:53
पॉपी करूंगा और कमेंट आउट करूंगा और नीचे यहां पर रियलोग का इस्तेमाल करके आप लोगों को दिखाऊंगा तो मै�
23:59
यहां पर लिखूंगा यूज ऑफ रियल ऑक्ट और यहां पर एंटर दे साइज ऑफ तो न्यू एरे लिखूंगा तो आप लोग नए एरे क�
24:06
साइज जो है यहां पर दे सकते हैं और उसी के हिसाब से आप लोग प्रिंटिंग कर सकते हैं अब मैं यहां पर करूंगा क्य�
24:12
पहले लोग कर रहा था मेमोरी अपनी कैलोग की मदद से उसको मैं वापस से ले आऊंगा और मैं यहां पर जैसे ह�
24:20
मैंने कैलोग की मदद से यहां पर मेमोरी को लोगेट किया मैं करूंगा कि रियल आपकी मदद से एक नया मैं एन क�
24:26
value को input करके वापस से print करवाँगा अपने array की values और मैं यहाँ पर क्या करूँगा input नहीं लूँग�
24:32
सिर्फ print करवाँगा array की values तो यहाँ पर होगा क्या कि जो मेरा array है उसका size बढ़ जाएगा तो मैं एक काम करता हू�
24:39
इनपुट भी ले लेता हूं, उससे हुआ कि एक अच्छी understanding हैगी आप लोगों को, तो calog की जगह मैं realloc का इस्तेमाल करूँगा, और अगर आप लोग याद करें
24:47
ने रियलो के सिंटेक्स को तो वह क्या था एवियर लोग के अंदर एक तो पीटी आ रहा था हमारा पुराना पीटी आ ज�
24:53
था वह आता था तो मैं यहां पर लिख देता हूं पीटी आ और उसके बाद नया साइज आता था तो मैं लिख दूंगा एन इंट�
24:59
तो नया साइज आ जाएगा और उसके बाद मैं सारी के जारी वैल्यूस को यूजर से इनपुट करवाऊंगा और उसके बा�
25:06
यहां पर मैं आराम से उसको ले पाऊंगा तो मैं वैल्यू की जगह यहां पर न्यू वैल्यू लिख देता हूं अगर आ�
25:12
वह टूब बताता हूं क्या कर रहा हूं यहां पर मैं आपकर करके रहा हूं कैलोग की मदद से मैंने यहां प�
25:17
एक पीटी आर के अंदर क्या किया एक एंड साइज का एरे बनाया एंड किसने इनपुट के यूजर ने स्कैन की मदद स�
25:25
इनपुट किया और जितना भी नंबर उसने इनपुट किया उतने एरे का मैंने उतने साइज का मैंने एरे बना लिया के लो�
25:30
की मदद से उसके बाद मैंने उस एरे को बोला यूजर से कि भरो मुझे बताओ क्या वैल्यूज इसमें डालनी है उसकी बा�
25:36
उसको प्रिंट करा दिया अब मैं चाहता हूं कि वह एरे के साइज को मैं थोड़ा बढ़ा दूं या कम कर दूं तो मै�
25:42
रियल ऑफ का यूज करूंगा मैं कहूंगा कि बाइंटर शाइड अब दन नियुक्त यू ऑन टो क्रिएट उस नए एरे का साइज बता�
25:48
बनाना चाहते हो और स्कैन की मदद से मैं इनपुट ले लूंगा इनको वापस से फिर रियल आउट की मदद से मैं मेमोरी क�
25:54
रिएलोकेट करूंगा और जो काम है पहले कर रहा था यानि कि यूजर से इनपुट लेना उन वैल्यूस को और यूजर की स्क्री�
26:01
डिस्प्ले करना यह दोनों काम मैं करवा हूंगा तो मैं यहां पर करूंगा क्या अभी इसको रन करूंगा सिंपली औ�
26:07
रन करने के बाद यह कंपाइल होकर रन हो जाएगा मार्नो में चार साइज कर रहा तो मैंने गलत जगह इनपुट लिए मुझ�
26:12
क्लिक करके करना चाहिए चार और मैं 1234 वैल्यू रखता हूं सिंपल सी अब मार लो मैं इस चार साइज को नौ करन�
26:19
चाहता हूं यह फिर नौ की जगह दो कर देता हूं तब मैं क्या करूंगा वन और यहां पर टू तो मैंने यहां पर क्या किय�
26:25
पैसे को डायनामिकली चेंज कर दिया पहले चार का था अब दो को कर दिया तो अगर यह पहले चार का था तो मैंने दो क�
26:32
करा तो मैं चार से छह भी कर सकता तो यह भी आप लोगों को दिखा देता हूं तो एक दो तीन चार लिखा फिर छह करके ए�
26:37
3456 कर दिया तो जैसे कि आप लोगों यहां पर देखा पहले एरे का साइज था चार फिर मैंने उसको डाइनामिकली फिर स�
26:44
लोकेट करके उस चार को छह कर दिया यह मैंने बोला कि मुझे थोड़ा सा और मुझे स्पेस दे दो मुझे थोड़ी स्पेस औ�
26:51
चाहिए मुझे पहले जरूरत थी चार साइज के एरे की लेकिन अब मुझे छह साइज के एरे की जरूरत है तो मुझे द�
26:59
जो मेमोरी लोकेशन है इंटीजर के वह बढ़ाकर मुझे दे दो मुझे दो और ब्लॉक्स दे दो इंटीजर साइज के ताकि मै�
27:07
मैं अपने दो integers को रख पाऊँ, ये काम बिना dynamic memory allocation के नहीं हो पाता था
27:12
अगर आपको याद हो हम array बनाते थे, कहते थे कि बाई अगर 4 का size चाहिए तो 10 का बना दो
27:18
good enough array बना दो, लेकिन ये करना efficient नहीं होता है, इसलिए dynamic memory allocation का इस्तेमाल करते हैं
27:24
अब यहाँ पर जैसे प्रोग्राम चलता जा रहा है आगे होगा क्या यहाँ पर जो मेरा realloc function है उसने जो memory store करा के रखी हुई है जो memory reserve करा के रखी हुई है pointer में वो तो वहीं के वहीं है इसलिए मैं free ptr कर दूँगा तो free ptr करने से क्या होगा वो memory free हो जाएगी वो memory खाली हो �
27:54
कीप के अंदर मेमोरी को और इस्तेमाल किया जा सकता है वह मेमोरी अफ्री हो चुकी है अब यहां पर तो प्रोग्रा�
28:01
एक्सिट होने से पहले मैंने फ्री लिखा है लेकिन अगर प्रोग्राम के बीचों बीच आप कुछ करें डाइनामिकली क्रिए�
28:06
रहे हैं एरे को और उसके बाद आप लोग एक नया एरे बना रहे तो आप पुराना जो यूज हो चुकी है मैमरी उसक�
28:12
फ्री करा दे यह एक अच्छी प्रैक्टिस होती है आपको एक क्विज देना चाहूंगा यहां पर क्विज यह है कि आप लोगो�
28:18
फ्री का इस्तेमाल करके मुझे दिखाना है आप लोग को ये दिखाना है क�
28:23
फ्री को आप लोग किस तरह एफिजेंटली इस्तेमाल कर सकते हैं यहाँ पर मैंने आप लोग को फ्री यूज करके दिखाया लेकि�
28:30
लेकिन यहाँ पर मैंने फ्री यूज करके आप लोग को दिखाया प्रोग्राम एंड होने स�
28:34
पहले मैं चाहता हूँ कि आप बीचो बीच प्रोग्राम के फ्री यूज करें और ये दिखाये मुझे कि किस तरह आपने एर�
28:40
बना कर उससे काम लेकर फ्री कर दी memory और आप आगे बढ़ गए अपने program मे�
28:44
यह मैं आप लोगों को quiz देना चाहता हूँ आप लोग फिर से सुने मैंने क्या बोला थ�
28:48
पीछे करके अगर आप लोगों ने quiz को सही से नहीं सुनाया लेकिन यहाँ पर सारे क�
28:52
सारे लोग इस quiz को जरूर solve करें यह मैं चाहता हूँ सो गएस मैं आशा करता हूँ कि समझ में आए होंगी चीज़�
28:57
आप लोगों को कैलोक, मैलोक, रियलोक किस तरह यूज़ करना है और आप लो�
29:01
कोई जो भी यहाँ पर मैंने जो दी है मैं चाहता हूँ आप लोग solve करें उसको यहाँ पर मैं चाहता हूं कि अगर आप लोगों ने मुझे facebook instagram वगरा पर follow नहीं करा है तो आप लोग जाकर कर ले follow उसी के साथ साथ अगर आप लोग like करेंगे इस वीडियो को तो मुझे काफी अच्छा लगता है तो इस वीडियो को आप लोग like भी कर �
29:33
for watching this video and I will see you next time