Pointers and dynamic memory - stack vs heap
Vložit
- čas přidán 22. 02. 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
*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
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.
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 sat through a 2 hour lecture on this subject and this video made far more sense than my professor did. Thank you!
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. :)
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
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 wish my university lectures were like this!
Don't care + L + Cry + public static void main args + noob
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.
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...
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.
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!
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 CZcams 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
Hi Ravi,
Sure. We will do the next video on "character arrays and pointers"
whaaaaaaatttt a mind boggling explanation..... oooommmgggg.
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.
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.
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 !
Hi Ravi,
We have uploaded two videos on "character arrays and pointers". Check the playlist on pointers. Your feedback is appreciated.
You taught pointers in a very effective way among these tutorials, congratulations!
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.
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.
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" 😅
one of the greatest tutorials ive had in a long time
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.
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.
Thank you, THANK YOU, THANK YOU!!! I have struggled with this concept for AGES and your video just made it all click!
scottdotjazzman idk
still the best pointer video on youtube, saved me, I always come back to it for a refresher
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.
Your explanation is excellent thank you :) finally i understand. watched so many videos about this topic and yours was the best
This is an amazing break down. I really appreciated it.
This gave a really clear explanation. I'm so glad I've found this video! Thank you
the best video for memory hierarchy in c/cpp programming I have see. Thank you!
I like the subtitles they are helpful
Great lesson, I've watched it many times. Good job.
Have been looking for this for ages! Thanks for a very concise and clear explanation!!!
best concise and simple explanation of the stack and heap i've ever seen. 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.
The drawings make it look like the stack is building upwards, though. This doesn't seem consistent with what you said
As a cyber-security student, never thought I'd need this and didn't pay attention. well... here I am.
Gonna be taking a course that involves a lot of this sort of material. The explanations are very much appreciated!
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!
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.
czcams.com/video/wwoYZOjuACE/video.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.
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
probably the best explanation of memory allocation I have heard, great work buddy way to go!
I've watched so many of videos about this... You explain it the best.
Thanx for the information sir. It will be helpfull for me while studying Data Structures and Algorithms
same here too
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 answered many of the questions I had regarding why malloc() is used as opposed to "normal" variable creation. Thanks!
thank you for the very concise tutorial. you're tutorial actually helped me to finally understand OOP concepts. I find that all the big words and terminologies of OOP are just wrappers to the age old concept of malloc/calloc/realloc/free and typedef struct.
he's good
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");
}
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
just book marked this video to comeback and watch in the future, so far the best explanation I can find on youtube
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
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.
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 :))
You just made one of the most tricky aspects of c/c++ programming trivial... thanks.
You are a great teacher! I have never understood memory and pointers until now! ❤
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
Sans doute la meilleure explication, très pédagogique.
Thank you,
This is very helpful, i was stuck with those concepts, and your video clear up everything.
you explained the stack and heap with way better than those instructors of the cs50 course , thanks alot
Thanks very simple and straight forward explanation of stack vs heap in memory. Keep up the good work.
No fluff, just solid content from a teacher who's not in love with the sound of his own voice. 🎯 👍
This content is much easier to understand than what my university provides. Very nice.
Your tutorial is very easy to understand. Great job.
These Tutorials are very helpful. Great job.
The size of the stack frame is calculated when compiling the program ... it is so important ... Thank you bro :)
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.
Hi Vishakha,
Feel free to ask a question anytime. The whole idea of mycodeschool is to help :) BTW, did you check our playlist on data structures. We are still creating lessons. We are covering linked list right now.
thanks , one of the best videos for dynamic memory allocation I've ever watched about that
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!
Holy place for any beginners .....
Thanks mycodeschool .......
The most important lesson for programmers !!!
Thanks a lot bro.
Quite understandable explanations with clear visuals. Subscribed!
You are absolutely AMAZING! Honestly I am very appreciative!
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.
Terrific. Explained the main points in a clear way.
This was a very helpful and clear explanation. Thank you!
These videos are awesome!!! Best thing I've seen all month.
the best explanation i had never seen, thank u so much
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!
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 CZcams. 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!
Thank you for all the programming videos you have explained it so amazingly well ! Can you upload videos on few operating system concepts like scheduling, preemption, ISR, exception handling etc ? It would be a great help. Thanks!
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.
It's been 8 years, but this guys video are the best :)
You're an amazing teacher!
Great explanations! You are a very good teacher.
This was an incredible explanation and really easy to follow along. Great video!
I find this video extremely helpful. Thanks for your effort.
It was a very clear cut explanation with an example program. Thank you so much for this neat work👏👏❤️
This was a wonderful lecture. You really put your heart into making this. Thanks
This is a great video. Came here to understand what was advertised and even learned more.