Watching this in November 2024, and I am amazed by this clear and direct explanation of these memory/pointer concepts. I am in the middle of my journey to finally learn C/C++ at the age of 50, which is a little childhood dream when I wasn't able to wrap my head around this trying to code on my Commodore Amiga in C (and my fallback was Amiga Basic, which was the superslowest approach to coding on this 16 bit computer). So, thank you, unknown creator, I salute you!
You are a man that made 17 minutes feel like 3 and enlightened me every step of the way. I not only salute you, but respect your work immensely. Well done. Subscription more than deserved.
*My takeaways:* 1. Stack 2:12, stackoverflow 5:45 2. Heap 7:35 3. Heap is also called dynamic memory, using the heap is referred as dynamic memory allocation 8:56 4. Heap memory has nothing to do with heap data structure, but stack memory is an implementation of stack data structure 9:17 5. Dynamic memory allocation functions/operators: C - malloc, calloc, realloc and free. C++ - new and delete 10:00
Very good big picture video, you spent a lot of time prepping of this via examples. Thank you for spending the time to make the forest seem clear and not get lost in the details of the trees
Always had to deal with stack and heap, and I was unclear of the difference. This explanation and examples were kick-ass. Loved it and it was the best delineation of the stack and heap that I have ever ran into. Thanks much!
The best explanation of memory and pointers. Huge, HUGE thanks to this guy. Dude, you did something in that takes 3-5 classes to be explained in 17 minute video. HUGE respect for you, here, take my like!
You are amongst the BEST teachers of all TIME. This series of courses has made one hell of an Embedded Systems firmware engineer. I still visit it from time to time. Thanks for sharing this amazing knowledge of yours with a superb explanation ability.
Some people are meant to be teachers and some don't . We can only accept it and move forward . The sad part, you must pick up a teacher on RUclips until you find one that make's all demystified - it's time consuming resource :)
OMG. Thank you for this video, you are an absolute legend. It is crazy to think that one is spending thousands of dollars on a higher education degree, and still this 17 minutes FREE video covers the material way better and in a more understanding way than a university lecture. This is why I love the Internet and RUclips. Thank you again, good sir.
I see you haven't upload any video recently but I still wanted to thank you. Im a spanish collegue student that strugles to understand his teacher's explanations. Althought english is not my first language, I have found your video an incredible and more helpful explanation than my teachers one. Thank u very much!!!!
The size of stack is decided during compilation. So, in most cases we do not need to bother about stack-overflow unless we write an infinite or very deep recursion. If we try to use too much of memory on stack and compiler can get to know about it during compile time (like very large arrays in C), it will give you error during compile time. Its just that if compiiler can not predict run-time behaviors like in the case of recursion.
It depends on the language, compiler, operating system and architecture. Typically, compilers would know about your local variables and function calls, so they can fix some stack size accounting most of the things except probably things like recursion that may go on infinitely. Once again, OS may also enforce some constraints. So,all in all its a thing of compiler and your system's design.
I had spent almost a week trying to understand this concept until I stumbled upon this masterpiece. And this is just too good. The pictorial way of teaching is so much more fun to understand and so much more easier. R.I.P humblefool, u will be missed
At first, when I heard an Indian accent, I wanted to leave, but I waited a bit and realized this is the first Indian guy who explains everything very clearly. I am so happy I found this video and watched till the end. Thank you very much!!
Those who want to do Operating System coding project on Heap Memory is here : www.udemy.com/course/os-project-lmm/?referralCode=300551829F89C8F3E7C2 Ping me on Whatsapp for discount : +91-9686081839 All courses in 1 place : www.csepracticals.com/
How will the size of the stack be decided by the compiler or working system? Does the decision in anyway, depend upon the code written or entered by the user?
Wow! At 4:06 timeline time; You have clearing established linearity between software programming and physical "RAM" structures. The format, layout, and illustration are brilliant; eight years and months after the year posted. Thank you! I paused the video to write this thread. If the remainder of this video continues as noted, it is a great production.
For me, such topics should be exactly explained like you have here. Through actual examples of implementation of these concept and a visual representation of what's happening behind the hood. For me a picture does indeed say more than thousand words. Thanks!
4th year student at University, working with higher level languages and not understood these pretty well. I needed to know these even for Java and I got them right this time!!! Thanks!
For english speakers, Heap can be thought of as a pile of data. It was called heap because it piles up data building upwards. The stack builds downwards (hence stack pointer references decreasing addresses as you build onto the stack) while the heap (or pile of data) builds upwards (meaning the addresses increase as you build onto it.
I started computer science one year ago And I have never understood that, but by wacthing your video I got it in less than 20 min, You have a gift for teaching
Thanks a lot the simplicity with which you explained mall0c and heap , tried 4-5 books and different teachers no one really explained anything thanks a lot
Excellent explanation. Just one suggestion that, stack always resides higher then heap. It would be better if you would have drawn stack above the heap. Also stack grown from high to low and heap grown from low to high. These directions are important, and shall be shown.
@@parthasarathimishra7538, bro, honorable Harsha Suryanarayana, demised due to a car accident in 2014; however, he is always alive with us. ruclips.net/video/wwoYZOjuACE/видео.html&ab_channel=SubhamPal
@@parthasarathimishra7538 bro, your suggestion is also helpful for others. Since I didn't know the stack memory grows from low to high, and the heap memory from high to low.
For some reason I like his voice than anyone else's. Good tutorial. Tushar Roy's youtube and mycodeschools videos are my goto lecture videos whenever I am preparing for any technical interview. THANKS A LOT !
hi!! pradosh and all,these days i am preparing for my technical interviews and i am only watching mycodeschool videos,would u recommend any other lectures or tutorials so that i cover up all the topics of c++, datastructures and programming skills.Tushar roy videos are also good. And thanks to mycodeschool for making such awesome videos, i hope to see more in coming future
HI Ayush, my suggestion would be to start solving questions from HackerRank and mycodeschool ( the website) first. The main thing that I liked about mycodeschool is that it has many questions relating to implementation of C std libraries, which many interviewers ask. HackerRank because most of Amazon questions are direct links to hackerrank, so if you have solved hem in past, you will be in good position. Side by side start on leetcode . Leetcode is the goto site for many questions from Google..etc. My aim was to solve atleast 5 questions daily. Keep a notebook consisting of any solved questions that Tushar does/you do, it will help you a lot during interviews as you can simply go thru the answers from your notebook in a short span of time. During my interviews, i went thru the solved submissions on HackerRank and it helped me a lot . You can leave out DP, hard level graph and tree questions for later though. But you should be able to say the tie complexities, and why a particular data structure is used in any question you do. Most of my failures in earlier interviews was because I hadnt practised programming. SO evvn though I could tell the algo immediately, on white board I would not give a correct code in 5 minutes. SO ya practice a lot. My experience is from being interviewed as a fresh grad from MS in USA. I think in India the question standard are more tough :P Lastly , before any interview,,spend some time on glassdoor for that particular company and gp over the questions that people have been asked. That helped me a lot as well. Best of luck
+ThePositiev3x Once the program finishes, the memory that it was using is freed. Which means that another program can allocate and use them now. But the values that you used before remains as garbage until you reboot or when other program allocates and change it.
Master!!! Got to know about your videos very late...But Learnt a lot with your clear Explaination, and gained Clarity of the Topic..Stay Blessed Always!!!
It's honestly very tolerable, compared to other Indian accents. A lot of programming videos where the tutors who have not only thick accents, but do not enunciate. This guy is really good.
Fantastic video, I would recommend to anybody having trouble understanding these concepts as they build off each other very well in these videos. Great job, sir.
This is a very interesting video, also his voice is very clear as he gets to the point and the video is quick with editing the drawing and writing he makes.
Watching this in November 2024, and I am amazed by this clear and direct explanation of these memory/pointer concepts. I am in the middle of my journey to finally learn C/C++ at the age of 50, which is a little childhood dream when I wasn't able to wrap my head around this trying to code on my Commodore Amiga in C (and my fallback was Amiga Basic, which was the superslowest approach to coding on this 16 bit computer). So, thank you, unknown creator, I salute you!
You are a man that made 17 minutes feel like 3 and enlightened me every step of the way. I not only salute you, but respect your work immensely. Well done. Subscription more than deserved.
*My takeaways:*
1. Stack 2:12, stackoverflow 5:45
2. Heap 7:35
3. Heap is also called dynamic memory, using the heap is referred as dynamic memory allocation 8:56
4. Heap memory has nothing to do with heap data structure, but stack memory is an implementation of stack data structure 9:17
5. Dynamic memory allocation functions/operators: C - malloc, calloc, realloc and free. C++ - new and delete 10:00
Wait… wut??? This video is only 5:27 long 😅
I sat through a 2 hour lecture on this subject and this video made far more sense than my professor did. Thank you!
Best explanation of memory ever!
Agreed!
I whole heartily agree! Te best explanation of memory usage and the Responsibility of the Programmer to maintain this resource.
Agreed.
Ikr
Agreed
Very good big picture video, you spent a lot of time prepping of this via examples. Thank you for spending the time to make the forest seem clear and not get lost in the details of the trees
I'm in my 2nd year of computer engineering, finally someone tells me that "heap" is NOT the data structure. Thanks a lot
The heap is a data structure too. Is not the same heap he was talking.
@@pubdigitalix I think that's what he meant.
I am self learning computer science. I did not expect the terminology to be this blurry and confusing, since it is called "science".
@@CUSELİSFAN lol
plz help me im only 15 and i dont understand anything
Always had to deal with stack and heap, and I was unclear of the difference. This explanation and examples were kick-ass. Loved it and it was the best delineation of the stack and heap that I have ever ran into. Thanks much!
Thanks for providing subtitles, I know it would hurt your ego to do it, but it really does help. :)
The best explanation of memory and pointers. Huge, HUGE thanks to this guy. Dude, you did something in that takes 3-5 classes to be explained in 17 minute video. HUGE respect for you, here, take my like!
You are amongst the BEST teachers of all TIME. This series of courses has made one hell of an Embedded Systems firmware engineer. I still visit it from time to time. Thanks for sharing this amazing knowledge of yours with a superb explanation ability.
Some people are meant to be teachers and some don't . We can only accept it and move forward . The sad part, you must pick up a teacher on RUclips until you find one that make's all demystified - it's time consuming resource :)
Proof ?
The channel hasn't produced videos in six years! Maybe someone needs to step up and archive it.
@@losfromla1480 ok
@@losfromla1480 read about humble fool Harsha Suryanarayana you l know why there are no videos
I wish my university lectures were like this!
Don't care + L + Cry + public static void main args + noob
I've never encountered an explanation of this subject that was so easy to understand as well as covering so much material. Thank you infinitely
OMG. Thank you for this video, you are an absolute legend.
It is crazy to think that one is spending thousands of dollars on a higher education degree, and still this 17 minutes FREE video covers the material way better and in a more understanding way than a university lecture.
This is why I love the Internet and RUclips. Thank you again, good sir.
True, true, and true.
Very true. It is very unfortunate the teacher died a very long ago in an accident.
R.I.P legend!
Holy shit! none of my actually teachers in school could ever explained like this guy, thanks man!
I see you haven't upload any video recently but I still wanted to thank you. Im a spanish collegue student that strugles to understand his teacher's explanations. Althought english is not my first language, I have found your video an incredible and more helpful explanation than my teachers one. Thank u very much!!!!
I heard that he died in a car accident !
The size of stack is decided during compilation. So, in most cases we do not need to bother about stack-overflow unless we write an infinite or very deep recursion. If we try to use too much of memory on stack and compiler can get to know about it during compile time (like very large arrays in C), it will give you error during compile time. Its just that if compiiler can not predict run-time behaviors like in the case of recursion.
I don't have a formal CS degree. I used to come this channel for the foundation years ago. Love coming back to this channel every once in a while.
It depends on the language, compiler, operating system and architecture. Typically, compilers would know about your local variables and function calls, so they can fix some stack size accounting most of the things except probably things like recursion that may go on infinitely. Once again, OS may also enforce some constraints. So,all in all its a thing of compiler and your system's design.
I had spent almost a week trying to understand this concept until I stumbled upon this masterpiece. And this is just too good. The pictorial way of teaching is so much more fun to understand and so much more easier.
R.I.P humblefool, u will be missed
Bruh don't tell me he's really rip... That will make me sad a bit...
@@nitnelavspetorials Sadly, he was killed in a hit-and-run in 2014 at the age of 30
@@justcallmeRISHI ...Even if it's not what I wanted to hear, maybe it's better for me to know the truth... Thanks mate!
Hi Shri,
Yeah, we will create more tutorials. Its just that it will take some time. Stay tuned :)
instaBlaster...
At first, when I heard an Indian accent, I wanted to leave, but I waited a bit and realized this is the first Indian guy who explains everything very clearly. I am so happy I found this video and watched till the end. Thank you very much!!
Those who want to do Operating System coding project on Heap Memory is here :
www.udemy.com/course/os-project-lmm/?referralCode=300551829F89C8F3E7C2
Ping me on Whatsapp for discount : +91-9686081839
All courses in 1 place : www.csepracticals.com/
Thank you, THANK YOU, THANK YOU!!! I have struggled with this concept for AGES and your video just made it all click!
scottdotjazzman idk
Hi Him,
Ok ! We will try to get one video for object oriented implementation as well.
How will the size of the stack be decided by the compiler or working system? Does the decision in anyway, depend upon the code written or entered by the user?
@@sayantaniguha8519 this legend stoped uploading videos years ago. He is not active so I don't think you are gonna get the answer from him.
@@souravmandal2376 😭😭
@@sayantaniguha8519 He pass passed away 4-5 years ago in a car accident a car ran over her 🙏🏻🙏🏻
@@tanmaymathur1919 For your kind information , he is still alive and working in Google.
Hi Ravi,
Sure. We will do the next video on "character arrays and pointers"
whaaaaaaatttt a mind boggling explanation..... oooommmgggg.
Wow! At 4:06 timeline time; You have clearing established linearity between software programming and physical "RAM" structures. The format, layout, and illustration are brilliant; eight years and months after the year posted. Thank you!
I paused the video to write this thread. If the remainder of this video continues as noted, it is a great production.
Wow. This cleared up so much confusion I didn't even know I had! I feel far more solid in my understanding of stack/heap/memory. Thank you!!!
Lol I know right? Same feeling I had. "I didn't even know I really didnt understand this until I watched this video" 😅
11 years old, and this is the best explanation of memory allocation I've seen.
THose with less time might switch the speed to 1.25x ... His voice is clear enough ... Thnx btw .
+Shashank Singh his voice is clear even with 2x
+Shashank Singh yeah!
thx
1.5 is fine too
Well done. Much more coherent than the ones I have to speak to for problems with my ISP.
For me, such topics should be exactly explained like you have here. Through actual examples of implementation of these concept and a visual representation of what's happening behind the hood. For me a picture does indeed say more than thousand words. Thanks!
Hi Ravi,
We have uploaded two videos on "character arrays and pointers". Check the playlist on pointers. Your feedback is appreciated.
4th year student at University, working with higher level languages and not understood these pretty well. I needed to know these even for Java and I got them right this time!!! Thanks!
I like the subtitles they are helpful
one of the greatest tutorials ive had in a long time
Great lesson, I've watched it many times. Good job.
Usually I can't listen to Indian/Pakistani lecturers talk, but this one was very good and well explained! Thank you
Your explanation is excellent thank you :) finally i understand. watched so many videos about this topic and yours was the best
11 years old video still worth it
For english speakers, Heap can be thought of as a pile of data. It was called heap because it piles up data building upwards. The stack builds downwards (hence stack pointer references decreasing addresses as you build onto the stack) while the heap (or pile of data) builds upwards (meaning the addresses increase as you build onto it.
The drawings make it look like the stack is building upwards, though. This doesn't seem consistent with what you said
@@thelonespeaker yeah the person who made this video should've done it the other way
I started computer science one year ago And I have never understood that, but by wacthing your video I got it in less than 20 min, You have a gift for teaching
Thanx for the information sir. It will be helpfull for me while studying Data Structures and Algorithms
same here too
Thanks a lot the simplicity with which you explained mall0c and heap , tried 4-5 books and different teachers no one really explained anything thanks a lot
Excellent explanation.
Just one suggestion that, stack always resides higher then heap. It would be better if you would have drawn stack above the heap. Also stack grown from high to low and heap grown from low to high. These directions are important, and shall be shown.
Bro, the instructor is no more among us; however, the zillions people have been taking advantage of his countless effort.
@@loganwalker454 What happened?
@@parthasarathimishra7538, bro, honorable Harsha Suryanarayana, demised due to a car accident in 2014; however, he is always alive with us.
ruclips.net/video/wwoYZOjuACE/видео.html&ab_channel=SubhamPal
@@loganwalker454 OMG.... I am extremely sorry to hear about it.
May God bless his soul.
I will be deleting my comment.
@@parthasarathimishra7538 bro, your suggestion is also helpful for others. Since I didn't know the stack memory grows from low to high, and the heap memory from high to low.
This tutorial has been more clear than any other resource I have read on this matter, and you have cleared much confusion for me.
Much thanks.
This is an amazing break down. I really appreciated it.
Sir, you are the best. I have never met a mentor like you in my life. Keep educating the world and may god bless you. Thank You.
For some reason I like his voice than anyone else's. Good tutorial. Tushar Roy's youtube and mycodeschools videos are my goto lecture videos whenever I am preparing for any technical interview.
THANKS A LOT !
Good luck Pradosh :)
hi!! pradosh and all,these days i am preparing for my technical interviews and i am only watching mycodeschool videos,would u recommend any other lectures or tutorials so that i cover up all the topics of c++, datastructures and programming skills.Tushar roy videos are also good. And thanks to mycodeschool for making such awesome videos, i hope to see more in coming future
HI Ayush, my suggestion would be to start solving questions from HackerRank and mycodeschool ( the website) first. The main thing that I liked about mycodeschool is that it has many questions relating to implementation of C std libraries, which many interviewers ask.
HackerRank because most of Amazon questions are direct links to hackerrank, so if you have solved hem in past, you will be in good position.
Side by side start on leetcode . Leetcode is the goto site for many questions from Google..etc.
My aim was to solve atleast 5 questions daily.
Keep a notebook consisting of any solved questions that Tushar does/you do, it will help you a lot during interviews as you can simply go thru the answers from your notebook in a short span of time. During my interviews, i went thru the solved submissions on HackerRank and it helped me a lot .
You can leave out DP, hard level graph and tree questions for later though. But you should be able to say the tie complexities, and why a particular data structure is used in any question you do.
Most of my failures in earlier interviews was because I hadnt practised programming. SO evvn though I could tell the algo immediately, on white board I would not give a correct code in 5 minutes. SO ya practice a lot.
My experience is from being interviewed as a fresh grad from MS in USA. I think in India the question standard are more tough :P
Lastly , before any interview,,spend some time on glassdoor for that particular company and gp over the questions that people have been asked. That helped me a lot as well.
Best of luck
No fluff, just solid content from a teacher who's not in love with the sound of his own voice. 🎯 👍
As a cyber-security student, never thought I'd need this and didn't pay attention. well... here I am.
just book marked this video to comeback and watch in the future, so far the best explanation I can find on youtube
hahahaha sweet now i can ask questions on stackoverflow knowing what it was named after. ......... :D
When he said "this is called stack overflow" I got an AHA! moment
Lol!
same to me
Hahahaha
@@patrasculucian2403 yes me too. Never thought of that
You taught pointers in a very effective way among these tutorials, congratulations!
while(am still alive)
{
printf("%s", "Thank u very much,");
}
you don't need "%s" there!
thanks. But it works the same if i remove it(#no difference). Anyway am no longer doing programming.
@Avinash kumar Shudhanshu, it doesn't matter...... if is not broken don't fix it
"am" is not defined
bool stillAlive = 1;
while(stillAlive != 0){
printf("Thank you");
}
you explained the stack and heap with way better than those instructors of the cs50 course , thanks alot
i like the pronunciation of "square" -> skwaer
Sounds like "squire"
squire
couldnt focus because of it
I like how you note his pronunciations using structs -> 😉
I am a Vietnamese student. Indians are very smart and friendly. You help me alot!
Don't get me wrong here but most of them are not that good like the instructor in this video. It takes immense pain to be that good in one subject.
@@VikasPoonia abe yar accha nhi bol sakte toh burai bhi mat karo duniya ke samne
That's second indian guy after Rajesh Koothrappali, whom I understand.
Whomst'd've's'nd*
Koothrappali looks so funny when he laughs.
how is Rajesh Koothrappali ? give me his youtube channel link broo ~!
@@Sonofpeace 0.o
@@Sonofpeace he is an actor.
It's been 8 years, but this guys video are the best :)
mycodeschool What will happen if the programmer doesn't free the memory after allocating it..Will it stay even after the execution of the program?
ARBY No, all the memory is reclaimed once the program finishes execution.
Ok! Thanks
+mycodeschool are you sure? Because I think my teacher said it is reclaimed only after reboot.
+ThePositiev3x
Once the program finishes, the memory that it was using is freed. Which means that another program can allocate and use them now. But the values that you used before remains as garbage until you reboot or when other program allocates and change it.
+ThePositiev3x unfortunately mycodeschool stopped replying on his videos of Pointersc/c++ :( all comments and the replies are 11-12 month old xD
Master!!! Got to know about your videos very late...But Learnt a lot with your clear Explaination, and gained Clarity of the Topic..Stay Blessed Always!!!
i love how you say square
lol :))
This is still the best intro to C I've ever seen after all these years.
he's good
This is a great video. Just brushing up on some fundamental in prep for job interviews and this was exactly what I was looking for.
C++ is not a superset of C.
i=i+1; same as i++
C=C+1; same as c++
So C++ is a superset of C
Have been looking for this for ages! Thanks for a very concise and clear explanation!!!
I like the explanation, not a fan of the voice though.
It's honestly very tolerable, compared to other Indian accents. A lot of programming videos where the tutors who have not only thick accents, but do not enunciate. This guy is really good.
Just take what you can. This channel is awesome!
Then just watch with increased playback speed
I don't think anyone could explain memory any better.
the best video for memory hierarchy in c/cpp programming I have see. Thank you!
You just explained away all questions i had about the reasons to use pointers, why pass by reference is so important and stack vs heap. Thanks dude!
One of the coolest RUclips channels. I am sorry since he is not uploading new videos.
Sans doute la meilleure explication, très pédagogique.
Fantastic video, I would recommend to anybody having trouble understanding these concepts as they build off each other very well in these videos. Great job, sir.
This is a great video. Came here to understand what was advertised and even learned more.
This gave a really clear explanation. I'm so glad I've found this video! Thank you
Holy place for any beginners .....
Thanks mycodeschool .......
I've watched so many of videos about this... You explain it the best.
This content is much easier to understand than what my university provides. Very nice.
Great people who created this channel. Really thankful and I hope you continue with this project someday.
Sad story but the guy in the video died in car accident few years ago and hence this channel is not uploading anything new.
This was an incredible explanation and really easy to follow along. Great video!
You are a natural teacher and talented... Keep making videos
probably the best explanation of memory allocation I have heard, great work buddy way to go!
best concise and simple explanation of the stack and heap i've ever seen. thanks.
very very thank you Sir......nobody has included this topic in such a simple technique C programming tutorial......
This is the best explanation I have ever seen. Thank you very much
amazing explanation, finally a understand pretty much the basics of how memory works in under the curtain
You are a great teacher! I have never understood memory and pointers until now! ❤
Thank you so much. One of the best presentation I have ever watched!
thanks , one of the best videos for dynamic memory allocation I've ever watched about that
knew these concepts, but I always used to refer before talking about them, Now they are engrained in me thanks
Wooow what a teaching...!...why doesn't this guy has 1M subscribers yet??...
This answered many of the questions I had regarding why malloc() is used as opposed to "normal" variable creation. Thanks!
God bless you. Best explanation of the subject I have found.
the best explanation i had never seen, thank u so much
Watching in 2023, your tutorials never get old!
It was a very clear cut explanation with an example program. Thank you so much for this neat work👏👏❤️
Thank you over and over again. Best wishes from here.
Change the video title to best explanation of memory allocation on RUclips! 👍👍
The size of the stack frame is calculated when compiling the program ... it is so important ... Thank you bro :)
This is a very interesting video, also his voice is very clear as he gets to the point and the video is quick with editing the drawing and writing he makes.