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.
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!
*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 TH-cam until you find one that make's all demystified - it's time consuming resource :)
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!!!!
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 TH-cam. Thank you again, good sir.
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?
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!
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
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.
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/
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.
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 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
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. th-cam.com/video/wwoYZOjuACE/w-d-xo.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.
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
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.
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.
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.
That was fantastic and its clear to me as crystal. I have a few ques if you could help me answering them : 1) how can control when stack overflow happens ? 2) if I define static memory allocation in my program but still if my program architecture (e.g CUDA C) wants to dynamic memory allocation by default to support it with static memory allocation. Thanks
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!!!
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.
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.
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!
*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
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
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 TH-cam 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'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
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 !
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
Thanks for providing subtitles, I know it would hurt your ego to do it, but it really does help. :)
11 years old, and this is the best explanation of memory allocation I've seen.
I wish my university lectures were like this!
Don't care + L + Cry + public static void main args + noob
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 TH-cam. 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!
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.
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!
Thank you, THANK YOU, THANK YOU!!! I have struggled with this concept for AGES and your video just made it all click!
scottdotjazzman idk
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.
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" 😅
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!
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.
11 years old video still worth it
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.
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/
Holy shit! none of my actually teachers in school could ever explained like this guy, thanks man!
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.
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.
you explained the stack and heap with way better than those instructors of the cs50 course , thanks alot
Great lesson, I've watched it many times. Good job.
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!
Thanx for the information sir. It will be helpfull for me while studying Data Structures and Algorithms
same here too
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
Hi Shri,
Yeah, we will create more tutorials. Its just that it will take some time. Stay tuned :)
instaBlaster...
just book marked this video to comeback and watch in the future, so far the best explanation I can find on youtube
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.
th-cam.com/video/wwoYZOjuACE/w-d-xo.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.
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
Hi Ravi,
Sure. We will do the next video on "character arrays and pointers"
whaaaaaaatttt a mind boggling explanation..... oooommmgggg.
No fluff, just solid content from a teacher who's not in love with the sound of his own voice. 🎯 👍
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
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.
I like the subtitles they are helpful
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
one of the greatest tutorials ive had in a long time
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
This is a great video. Came here to understand what was advertised and even learned more.
Hi Ravi,
We have uploaded two videos on "character arrays and pointers". Check the playlist on pointers. Your feedback is appreciated.
Holy place for any beginners .....
Thanks mycodeschool .......
As a cyber-security student, never thought I'd need this and didn't pay attention. well... here I am.
You taught pointers in a very effective way among these tutorials, congratulations!
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
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.
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");
}
amazing explanation, finally a understand pretty much the basics of how memory works in under the curtain
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 -> 😉
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!
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.
the best video for memory hierarchy in c/cpp programming I have see. Thank you!
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
I don't think anyone could explain memory any better.
he's good
This is still the best intro to C I've ever seen after all these years.
i love how you say square
lol :))
This is the best explanation I have ever seen. Thank you very much
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
best concise and simple explanation of the stack and heap i've ever seen. thanks.
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
This was an incredible explanation and really easy to follow along. Great video!
Sans doute la meilleure explication, très pédagogique.
It's been 8 years, but this guys video are the best :)
very very thank you Sir......nobody has included this topic in such a simple technique C programming tutorial......
knew these concepts, but I always used to refer before talking about them, Now they are engrained in me thanks
That was fantastic and its clear to me as crystal. I have a few ques if you could help me answering them :
1) how can control when stack overflow happens ?
2) if I define static memory allocation in my program but still if my program architecture (e.g CUDA C) wants to dynamic memory allocation by default to support it with static memory allocation.
Thanks
This answered many of the questions I had regarding why malloc() is used as opposed to "normal" variable creation. Thanks!
Thank you over and over again. Best wishes from here.
God bless you. Best explanation of the subject I have found.
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!!!
You just made one of the most tricky aspects of c/c++ programming trivial... thanks.
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.
I've watched so many of videos about this... You explain it the best.
Your tutorial is very easy to understand. Great job.
Thank you so much. One of the best presentation I have ever watched!
Have been looking for this for ages! Thanks for a very concise and clear explanation!!!
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.
A gem, even after 11 years.
You are a natural teacher and talented... Keep making videos
thanks , one of the best videos for dynamic memory allocation I've ever watched about that
One of the coolest TH-cam channels. I am sorry since he is not uploading new videos.
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
This gave a really clear explanation. I'm so glad I've found this video! Thank you
Terrific. Explained the main points in a clear way.
You are a great teacher! I have never understood memory and pointers until now! ❤
Watching in 2023, your tutorials never get old!
This content is much easier to understand than what my university provides. Very nice.
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.
Thank you so much sir! This explanation is very useful and has helped me understand stacks and heaps