Pointers and dynamic memory - stack vs heap
HTML-код
- Опубликовано: 22 фев 2013
- See complete series on pointers here
• Pointers in C/C++
In this lesson, we describe the concept of dynamic memory allocation in c or c++ and explained how memory is managed for an application. We have explained the fundamental concept of stack and heap in memory also.
For practice problems and more, visit: www.mycodeschool.com
Like us on Facebook: / mycodeschool
Follow us on twitter: / mycodeschool
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
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!
I sat through a 2 hour lecture on this subject and this video made far more sense than my professor did. Thank you!
After months of intro courses skirting around this idea like it is some big scary monster, finally someone explains it in a simple way that is just so easy to understand. Thank you!
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
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".
@@emremokoko lol
plz help me im only 15 and i dont understand anything
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" 😅
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.
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 wish my university lectures were like this!
Don't care + L + Cry + public static void main args + noob
Thanks for providing subtitles, I know it would hurt your ego to do it, but it really does help. :)
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.
This gave a really clear explanation. I'm so glad I've found this video! Thank you
Thank you, THANK YOU, THANK YOU!!! I have struggled with this concept for AGES and your video just made it all click!
scottdotjazzman idk
Your explanation is excellent thank you :) finally i understand. watched so many videos about this topic and yours was the best
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.
the best video for memory hierarchy in c/cpp programming I have see. Thank you!
Holy shit! none of my actually teachers in school could ever explained like this guy, thanks man!
Hi Shri,
Yeah, we will create more tutorials. Its just that it will take some time. Stay tuned :)
instaBlaster...
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.
You taught pointers in a very effective way among these tutorials, congratulations!
This is an amazing break down. I really appreciated it.
Great lesson, I've watched it many times. Good job.
one of the greatest tutorials ive had in a long time
probably the best explanation of memory allocation I have heard, great work buddy way to go!
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 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 !
Have been looking for this for ages! Thanks for a very concise and clear explanation!!!
still the best pointer video on youtube, saved me, I always come back to it for a refresher
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.
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!
I've watched so many of videos about this... You explain it the best.
Hi Ravi,
We have uploaded two videos on "character arrays and pointers". Check the playlist on pointers. Your feedback is appreciated.
I like the subtitles they are helpful
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!
Thanks very simple and straight forward explanation of stack vs heap in memory. Keep up the good work.
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.
Hi Ravi,
Sure. We will do the next video on "character arrays and pointers"
whaaaaaaatttt a mind boggling explanation..... oooommmgggg.
Gonna be taking a course that involves a lot of this sort of material. The explanations are very much appreciated!
best concise and simple explanation of the stack and heap i've ever seen. thanks.
Really Great Way to Explain
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.
Sans doute la meilleure explication, très pédagogique.
Best explanation of the memory architecture using C. Simple language and with 100 %clarity. Thank you. Subscribed your channel and awaiting for many more such videos. Thanks again!
Thanx for the information sir. It will be helpfull for me while studying Data Structures and Algorithms
same here too
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
Thank you,
This is very helpful, i was stuck with those concepts, and your video clear up everything.
This is so amazing. I’m in CS50 and kinda struggled with their initial description of memory allocation. This video cleared everything up perfectly!! Thank you!
if even a harvard student is coming to get educated by an indian man on youtube then higher education truly is a scam. i hope you're not going into too much debt.
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
As a cyber-security student, never thought I'd need this and didn't pay attention. well... here I am.
Very clear and thorough explanation. I learned so much in this video eventhough I am not finished yet. Thank you so much! Subbed without hesitation.
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.
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.
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 are absolutely AMAZING! Honestly I am very appreciative!
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
he's good
thanks , one of the best videos for dynamic memory allocation I've ever watched about that
You are a great teacher! I have never understood memory and pointers until now! ❤
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 -> 😉
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.
very clear and concise explanation! great examples, and context as well
This answered many of the questions I had regarding why malloc() is used as opposed to "normal" variable creation. Thanks!
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 love how you say square
lol :))
The most important lesson for programmers !!!
Thanks a lot bro.
No fluff, just solid content from a teacher who's not in love with the sound of his own voice. 🎯 👍
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
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
It was a very clear cut explanation with an example program. Thank you so much for this neat work👏👏❤️
The size of the stack frame is calculated when compiling the program ... it is so important ... Thank you bro :)
Excellent explanation of a complicated subject. Thank you very much for this video!
Quite understandable explanations with clear visuals. Subscribed!
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.
you explained the stack and heap with way better than those instructors of the cs50 course , thanks alot
It is amazing.....your presentation was good enough to address the problem I had in 10 classroom sessions
this is very awesome, thanks for your graphical explanation i am now understand the stack and heap in a deeper way. Awesome!
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!!!
Amazing explanation on this topic, clear and easy to follow but also PACKED with information! Thank you so so so much, cleared out so much confusion I had
I find this video extremely helpful. Thanks for your effort.
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!
This was a very helpful and clear explanation. Thank you!
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!
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!
Great Tutorial really great video i figure out many things from this video.
Thanks.
Great lesson, best one I have come across so far. Thank you!
Such a superb explanation of concept! Amazing!
the best explanation i had never seen, thank u so much
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 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.
This was an incredible explanation and really easy to follow along. Great video!
Terrific. Explained the main points in a clear way.
Holy place for any beginners .....
Thanks mycodeschool .......
This video was in my recommendation , so glad I watched it!
Amazing explanation of memory management!! Thanks a lot!!!! Wonder, why we don't get to know this, like this in college!