Pointers in C / C++ [Full Course]
Pointers in C and C++ are often challenging to understand. In this course, they will be demystified, allowing you to use pointers more effectively in your code. The concepts you learn in this course apply to both C and C++.
✏️ Course developed by Harsha and Animesh from MyCodeSchool.
🔗 Read all about their amazing story here: www.freecodecamp.org/news/myc...
🔗 Check out the MyCodeSchool channel: / mycodeschool
🔗 Check out the MyCodeSchool website: mycodeschool.com/
⭐️ Course Contents ⭐️
⌨️ (0:00:00) Introduction to pointers in C/C++
⌨️ (0:10:29) Working with pointers
⌨️ (0:22:05) Pointer types, pointer arithmetic, void pointers
⌨️ (0:33:01) Pointers to Pointers in C/C++
⌨️ (0:42:21) Pointers as function arguments - call by reference
⌨️ (0:56:36) Pointers and arrays
⌨️ (1:05:18) Arrays as function arguments
⌨️ (1:18:10) Character arrays and pointers - part 1
⌨️ (1:32:49) Character arrays and pointers - part 2
⌨️ (1:42:49) Pointers and 2-D arrays
⌨️ (1:55:07) Pointers and multidimensional arrays
⌨️ (2:11:50) Pointers and dynamic memory - stack vs heap
⌨️ (2:29:14) Dynamic memory allocation in C - malloc calloc realloc free
⌨️ (2:36:48) Pointers as function returns in C/C++
⌨️ (3:02:01) Function Pointers in C / C++
⌨️ (3:13:57) Function pointers and callbacks
⌨️ (3:29:16) Memory leak in C/C++
⭐️ Special thanks to our Champion supporters! ⭐️
🏆 Loc Do
🏆 Joseph C
🏆 DeezMaster
--
Learn to code for free and get a developer job: www.freecodecamp.org
Read hundreds of articles on programming: freecodecamp.org/news
Пікірлер: 1 700
I feel smarter by just clicking on the video.
@manas1309
3 жыл бұрын
You'll feel like Einstein after completing the video!
@saideepgaunker3712
3 жыл бұрын
Hi Please create video on C programming for beginner 😀😀😀
@mryup6100
3 жыл бұрын
You'll feel like God after watching all of their videos!
@saideepgaunker3712
3 жыл бұрын
@@everydayintroswithouttext5012 Ok🥰😊🤘👍
@riobafelix3496
3 жыл бұрын
You are not alone... these are not ordinary topics. I feel humbled
Everytime he says thanks for watching, I so desperately want to thank him for teaching. You're a legend, Harsha and you'll never be forgotten 🙏
@arshsaiyad7547
3 жыл бұрын
couldn't agree more
@codex8797
3 жыл бұрын
the guy single handedly taught me more about pointers than my teachers at college.
@Chavez3d
2 жыл бұрын
Wait… did bruh die? 😟
@manoj6247
2 жыл бұрын
@@Chavez3d yup was killed in road accident.
@josh1234567892
2 жыл бұрын
@@manoj6247 :( that makes me sad
I spent decades writing C/C++ code daily, and the best bit of advice anyone ever gave me stuck with me that entire time relating to pointers. Not sure if it is in this video, as I didn't watch it all ... When you are reading the declaration of a C/C++ variable, read it right to left in English and the meaning is obvious e.g. What is a variable defined as ... int * const * Backward .. it is a Pointer to a constant pointer to an integer e.g. What is a variable defined as int [] ** Backward .. it is a Pointer to a Pointer to an Array of Integers Easy :)
@parthpawar7837
2 жыл бұрын
This is amazing, thank you!
@Nomadnetic3
2 жыл бұрын
Great tip, thank you.
@sampapap1188
2 жыл бұрын
Love you ❤
@gondoravalon7540
2 жыл бұрын
It is amazing how just a simple change at how you approach a problem makes things click.
@linonator
2 жыл бұрын
This is actually really useful. I finally wrapped my head around pointers and this helps solidify my learnings. Thanks Tony! I’ll remember this comment of yours when I’m a super C++ dev 😅🥲
RIP LEGEND LORD HARSHA. Your contribution to my life is way beyond words.
Note about doing stuff like: int* p; It kinda make sense to put the star next to the data type... because it's an "Int pointer" named p. This is fine as long as you declare only one variable per line. Some people like to declare multiple variables at once (I don't recommend doing this but it's doable...). If you do so, only the first variable will be a pointer: int* p1, p2; p1 will be a pointer to an integer... But p2 is an integer. This is why you should put the asterisk on the variable name instead: int *p1, *p2;
@inug4mida
2 жыл бұрын
nice fact
@ojasmaheshwari3862
2 жыл бұрын
Thanks helpful little fact
@nati1514
2 жыл бұрын
hmm good stuf 😉😉😉
@riskr6384
2 жыл бұрын
at 28:00 after defining p0 , i am unable to print p0....and also upon dereferencing it is giving weird outputs....someone please tell...
@pavloceza956
2 жыл бұрын
you saved me a LOT of time
I miss this guy, whom I will miss him throughout my life, who helped me passing 3rd semester in University, in Subject Data Structures and Algorithms..... Love you My Code School... Love you Free Code Camp Org...
I completed this course in a week and enjoyed learning it all. Harsha is the best guru of C and C++ programming and I learned a lot from him. Harsha why so OP. I know that he is no more and he died on June 15 2014 at just age 32 but I know that he made underdogs the winner finally and inspired others to make many more Brilliant Programmers from whole the world and not just INDIA.
@alvintayedzerwa8954
Жыл бұрын
It took me a bit longer than a week to complete.
@ign7kaku
Жыл бұрын
@@alvintayedzerwa8954 the longer it is the best it is, fun fact is I am implementing these on my program codes as of my daily schedule and still revising it in different intervals to be updated and strong in the basics.
Thank you, legend. I discovered this video years after your friend and co-teacher passed, but his and your legacy lives on. Thank you for everything. Much love from Nairobi, Kenya. May he smile with the angels.
Three and a half hour video on just pointers We are going to take over the world after watching this
@GoodLife-ru8di
3 жыл бұрын
hahaha
@kaustubhjoshi7194
3 жыл бұрын
Ur epic😂😅
@giaccomusic
3 жыл бұрын
this or generate so many runtime exceptions that the world we'll never be the same ever again. ahaha
@itsyourenotyour9101
3 жыл бұрын
*Points to you* delete...er.... delete [] . Not 'We'... I'm going to take over the world.
@brunomacedodasilva1160
3 жыл бұрын
i can feel the power growing in my hands :D
This was created almost 8 years ago! Still not outdated. Best explanation on pointers ever
@mehdimasmar6361
3 жыл бұрын
So far
@junaidkhankhan4260
3 жыл бұрын
How?
@numairdubas2688
3 жыл бұрын
C tutorials never become outdated
@rban123
3 жыл бұрын
K&R was published in 1978 and it is still not outdated
@sachin__ak
3 жыл бұрын
The guy who created this is a legend, read about him, I learnt pointers and data structures from this guy almost 6 years ago
finally I completed it... Pointers topic explained beautifully ...Thanks a lot . Its Definitely the best explanation available on youtube period.
@inmafruta8730
Жыл бұрын
I agree, and ive seen a lot
I have been working as a software engineer in very big semiconductor company and implement functional safe programs. Still i came here to learn something more about pointers and i wasn't disappointed.
If you're as confused as me after checking the size of A in the sumOfElements function (around 1:15:27) and finding that it yields 8 instead of 4, note that in x64 architectures pointers are assigned 8 bytes. Since A is technically a pointer in that context and that's why you'll get 8 bytes of size
@noiceboiii2052
2 жыл бұрын
thanks
@JM-ql4ok
2 жыл бұрын
Thank you!
@jorgematute1396
2 жыл бұрын
Thanks!
@mytech6779
2 жыл бұрын
The size of other types will also change dependent on the settings of the compiler. Even comparing with the same CPU, some of these are simply choice and this is why we have the "size of A" function to check that they are acting as expected. For example a "long long int" default could be 32 or 64 or 128 bits depending on language compiler and target CPU, and you can manually change this compiler configuration. This is because you may be compiling the same source code several times for different CPUs. ie for some cases int is 16b, short is 8b, and both long and long long types are 32; for clang and gcc default for AMD64 is int=32 and long-long=128b, but you could add a compile time flag to change the int to 64b or everything to 32b. Float names are more standard so a double is 64bit everywhere I have looked. But the "long double" can often create a mistake, some interpret long-double as IEEE-754 float128, some simply ignore the long and use 64bit double; and others interpret long-double as an 80bit "extended precision" float; 80bit matches the x87 floating point hardware unit that is combined with some CPUs. And a few terrible implementations (*cough*python numpy*cough*) have been known to actually use 80bit when you use explicit "float128" or "float96" keywords in your source. These 80bit floats may actually be padded with zeros to use 12 or 16 bytes of memory (96 or 128bits) to keep the typical 4 or 8 byte alignment of memory addresses and cache lines, but the x87 math unit only uses 10 bytes.
@sureshnair8276
2 жыл бұрын
subscribe and watch: kzread.info/dron/E6t_LLEfDXfOO6XDgD3u2A.html
Legends never dies....... Such frienship is immortal.... That is what the real meaning of love is....... 🙏🙏🙏🙏🙏🙏
It's amazing that this is free. These concepts are explained so well and clearly. Thank you!
@hossamayman3587
Жыл бұрын
Yes, they are wonderful people, and the curriculum on their website has been really helpful to me ❤❤
I must express the greatest possible gratitude for this course. The material is comprehensive, well-thought out and superbly structured. All of my implicit questions (i.e. "I know that I don't understand something, just not know what") are vanishing rapidly, and I haven't even finished the course yet! Thank you, thank you! To listen to this course was probably one of the best decisions I've made as a first year in university.
This vidio alone carries my entire programming semester
Very clearly explained. I did C programming in 1990 as a part of my university project (I am Mechanical Engineer). I thought that everything is forgotten, but when I watched this video, everything resurfaced as if I had studied all this just yesterday.
I am studying computer science in school now. And we have C language in our syllabus now - definitely KZread has taught me way more than my school teachers. And now I am proceeding to learn the intermediate of C language by learning the concept of pointer. I have already seen the first chapter of this video and have found it quite useful. Thanks to the person who have explained every thing on that chapter in an easy way.😀
This was very helpful, thanks! Here are some minor corrections: - At 0:41:00 : in the discussion of pointer-to-pointer, variable r should hold the address of q (=205), not the value of q (=215). - At 1:28:00 : print(c2[1]) is only possible via printf(c2 + 1) and this outputs 'e', not 'l'.
@moisesstevend
3 жыл бұрын
yes yes yes yes
@tranthanhtruong4205
3 жыл бұрын
I agree with you
@north4220
2 жыл бұрын
omg yes !
@sajalpatil6592
2 жыл бұрын
came looking for this comment to confirm if I was right
@Apollyon.King.of.the.Locusts
2 жыл бұрын
Omg, yes! That's why I had to watch that segment about pointer to pointers twice before finally getting it.
Thank you!!! I've been trying to wrap my head around the concept of pointers for the longest time, and this video definitely makes it stick a lot better. When I was taking my programming courses, my instructor kind of just brushed over this topic, but this requires a deeper, more in-depth approach.
This man was a legend amongst competitive programmers! #RIP Humblefool!
@waitwhat3547
3 жыл бұрын
RIP? The guy sounds so young, what happened? how did he die?
@Ash-em5pm
3 жыл бұрын
@@waitwhat3547 the video that you see here is roughly 7 years old. Mycodeschool was a team of devs from Microsoft and most of these were made by Harsh Srinanyana aka Humblefool. He was the highest rated programmer on topcoder India. He passed away in a tragic road accident in 2014.
@TT-ud5gf
3 жыл бұрын
@@Ash-em5pm oh no - is he the one that taught us with this hand written illustration?
@Ash-em5pm
3 жыл бұрын
@@TT-ud5gf not this one. This video and other public videos on KZread made by mycodeschool are by Animesh, one of their cofounders. After the tragic death of harsha, he was shock trodden and lost courage to upload more videos. The last video he uploaded was in 2016.
@capitaopacoca8454
3 жыл бұрын
You guys made me very sad
watched 5 years back. still worth to watch. missing content from mycodeschool.
Thank you so much! I have completed the first hour and learned a lot! Thank you sir!!!!! God bless you all and your team for providing free content with outclass quality! Please keep up the good work. I am learning programming for a business project, and haven't found any better video lecture so far. I even tried some payed courses but this is simply on the next level. Thank you again!
This channel helped me a lot in clearing my fundamentals, I'm so happy to see that the code school is getting the recognition it deserves .. RIP legend
I have already watched this series on mycode school many times earlier, and I can approve, best on the entire internet.
I woke up here
Thanks a lot for uploading this video. Read the article about the tragic story of Mycodeschool and I felt really sad reading the story behind it. But, at last, they have inspired me to work hard and be passionate about coding. I Hope Animesh is doing good in his life and RIP brother Harsha(Humblefool).
This guy is one of the best instructors I have heard on the web. Speaks very good English and explains things in a very logical, easy to follow manner. Superior instructor. Great job!
@whyiibhav
2 жыл бұрын
@Tongue- tied7 checkout his channel kzread.info
@imanqoly
2 жыл бұрын
His English is perfect
@zaks7
Жыл бұрын
He was one of indias greatest coders and a genius, he was fluent in multiple languages and was the red and highest rated coder from india dude was truly a prodigy, #RIP
@deltag0ny224
Жыл бұрын
@@zaks7 What happened to him?
@zaks7
Жыл бұрын
@@deltag0ny224 He died in a car accident, search about humblefool. But i was wrong, this video is by his partner/best friend who is still ok.
So far, an hour into this excellent tutorial and no ads.
I still remember in 2013-14 these were the set of videos I watched to learn data structure and algorithms. And these were so intuitive.
I came here to learn about pointers, but got to learn more than that which included how C++ organizes stuff in the memory. This is a very good crash course as it explores different use cases of pointers and has sufficient depth in each topic.
I'm at 1:05:27 and I have already started fantasizing about impressing class girls lol😁😁 Thanku so much
I really needed to learn more about pointers, thanks free code camp❤️
This video is amazing - a hidden gem of KZread. I learned more about pointers in 30 mins than in hours and hours of reading in textbooks and SO.
An absolute knowledge treasure in understanding pointers in C!
*Pointers were one of the topics I used to hate in school. I watched like 5 minutes of this video and I am liking the topic already. I have saved this video to my playlist and will watch this completely after my work today.*
@geutk4162
3 жыл бұрын
did you watch? do you know pointers now?
@quadroninja2708
2 жыл бұрын
Have you learned pointers at school? We were only taught some basic concepts such as variables and cycles, and also some algorithms
@aravindkramesh
2 жыл бұрын
@@geutk4162 Nope. I just relized I forgot to watch this video after work that day!
@geutk4162
2 жыл бұрын
@@aravindkramesh haha Well, it's never too late
This is the best series on pointer I have found. Its verbatim to my class workbook in regards to the depth of concepts but way easier to understand then looking at written code in a book with terrible explanation. Thank you!
loving the explanation so far . i really wish they had this beginner to advanced videos of the entire c language . it would have been soooooooooooooo helpful.
Thanks very much for providing this easy to understand and comprehensive account of pointers, datatypes and memory allocation. The importance of the type of a pointer has been missed in other accounts I've read. So when you increment a char pointer it increments by 1, when you increment an int pointer it increments by 4. All makes sense once you've watched this....
RIP. The legend he was. Humblefool.
@TheTariqibnziyad
3 жыл бұрын
Is he dead ?
@TT-ud5gf
3 жыл бұрын
@@TheTariqibnziyad who died?
@TheTariqibnziyad
3 жыл бұрын
@@TT-ud5gf Harsha, the guy who was presenting the video 😢
@ShubhamSharma-tn3wm
3 жыл бұрын
@@TheTariqibnziyad unfortunately it's been very long now. He was one of my initial gurus.
@sanjaydubey9973
3 жыл бұрын
@@ShubhamSharma-tn3wm where is his page? How did we lose him?
This is brilliant! All case scenarios, in depth explanation... Brilliant! Thank you
These legends recorded this video back in 2012. When learning to code on YT was barely a thing. Way ahead of their time.
In pointer to pointer concept : Value stored in "r" is 215 which I guess should be 205 if not mistaken 🙂BTW very well explained ! Use of pen and diagrams really helps to understand things better. And course content is very well covered. Lucky to have this in my library .🙏
@henrymiller5709
Жыл бұрын
yes, value stored in r should be 205 but not 215
finally finished lecture ...My college takes atleast $50 for this course and only taught starting 30min of this lecture
What a gifted teacher! I know this stuff, but it was nevertheless a pleasure watching the entire video.
This was very helpful. It helps fill out some gaps while learning structures, and other concepts. Thank you very much to the team who made this. 👍💪😎🔭📡
I love that you have dedicated so muxh time to this. Pointers has been the point where I have dropped programming so many times. I can survive without it, but a proper walk through is great.
I was just working on a project having trouble understanding pointers, I needed this. Thanks.
So I have a job interview an hour later. Came here to refresh my concepts on pointers and memory management. My only regret is why didn’t I finish it earlier. Awesome content. Much love to mycodeschool.
@piesekleszekpiesek
Жыл бұрын
Did you get it :D?
@monemahmed6830
Жыл бұрын
@@piesekleszekpiesek Thank You for following up 😄 I have completed three technical viva. Waiting for the call to final management viva. Let's see what happens. 😄🤞
@ErmanUtkuavsar
Жыл бұрын
@@monemahmed6830 what happened at the end :)?
can't forgot how my journey start with learning programming, i was try to learn the pointers in the time of traveling and i am just remember this moment and want to share it
I have been trying to wrap my mind around pointers for a while now. This video is priceless! Thank you! Thank you!
If mycdschl continued their course it would be the most subscribed channel in cs courses.
best video ever. Keep doing this kind of videos, where you get inside of difficult topics and make it easier to us. Thanks FreeCode.
MyCodeSchool made their last upload 4 years back. But today also their content are outstanding.
i've been struggling finding the best explanation for pointers but this video really is the best. props to Harsha
Harsha is the boss. He explains it very well. I have watched his lectures 2 years ago and they are in my mind yet.
@shivansh8006
3 жыл бұрын
Actually Animesh was the presenter in the video while Harsha was far good in his coding concepts and thus they both were a very good team.
All hail Lord Humblefool
The best video on pointers on youtube. Please whoever visits this video do watch it. He has convered everything that we need to know. 100% worth watching whole video without skipping.
First of all really these are greatest videos to many students, where several things were not understood, watching these videos make someone getting enlightened, i still remember I came to know about mycodeschool, and had recommended to several people but they didn't watch, but i kept watching, later I see there were no more videos, I was completely surprised what happened why this got stopped all of a sudden today only i came to know about the story. Really this is sad to know, but the work will remain as standalone masterpiece, with little time they made this impact if it had continued it would made an astonishing impact to several peoples around world. Thanks Harsha I wanted to thank several times but came to know about your story today. Thank you very much.
Being a gujju hearing Jigabyte 1:15 gave a new nickname for my friend Jignesh.
@hbdarji
3 жыл бұрын
Alya gajab lya 😂. BTW aapdu naam sarkhu che.
@anshuvadhel1076
3 жыл бұрын
laya laya bhai
@akashthoriya
3 жыл бұрын
Ha moj ha
very informative , detailed explanations which are very useful to understanding this difficult concepts
Char Gratitude [ ] = "Thank you";
Thank you for making this, this video was so helpful in a lot of different ways. Amazing content!
i would definitely donate this channel when i start earning.
No one could ever teach me pointers like you! You are the best!!!
This is the best teaching I have ever seen, and it really "free" a lot of problems in my brain.
the best explanation of pointers on the whole youtube. Brilliant content.
I have subscribed mycodeschool since 2015 and still use it to revise those concepts...thank you mycodeschool ❤️
well done! your usage of a tablet/pen helps a lot to visualize concepts like stack, and heap.
I’m only 20 minutes into this video but I already understand a lot of things that made no sense to me before. Thank you so much for this video. The way you explain things is so easy for me to understand.
1:32:51 In the while condition we're dereferencing c so that it can identify the null character and in the printf we're doing the same so that printf fumction can print the string .. and c++ is just moving the pointer to the next character(by default it point to the h of hello) so that loop can continue.
As a python programmer the concept of pointers was the only thing which was difficult to wrap my head around. After watching only the first hour of this video I now have a much better understanding. Thanks!
@mwagaha3343
10 ай бұрын
You're welcome
Incredibly valuable lesson! he had a talent for clear and thorough explanation which is something that is rare and precious. It saddens me to learn of his passing... Rest in Peace
@monsurrahmanriaz1564
10 ай бұрын
very shocking!! RIP
The pace could not be done any better. This is simply the best video on the subject
the explanation of function returning pointers was the best. explaining by actually showing how the memory is allocated in stack was so good. thank you so much.....
Harsha was a legend. Started my coding from his channel.
@johnnycincocero
3 жыл бұрын
What do you mean, was?
@jatinthakur4252
3 жыл бұрын
@@johnnycincocero He died in a car accident 😭
@odorlessflavorless
3 жыл бұрын
@@johnnycincocero Please read the story put up in description link. Its an amazing one.
@TheTariqibnziyad
3 жыл бұрын
@@jatinthakur4252 omg
@johnnycincocero
3 жыл бұрын
@@jatinthakur4252 Damn. Sorry to hear that.
Thank you so much for this great tutorial. It really helped me understand the topic. It also makes me appreciate languages like C# that have garbage collection.
This was one of the best explanations of a topic that I watched. You really are a great teacher. Good Job!
llo, I am from Peru, I am 25 years old and I have been learning programming for several months. And I wanted to understand pointers in C++, and this is the best VIDEO explained in detail that I found, Thank you so much!!! Now I even know how memory is managed in C++. Thank you!
Studying for an exam to get into CS and this has helped me a lot. Thank you very much
@missgirl8210
2 жыл бұрын
good luck 👍 🍀
@missgirl8210
2 жыл бұрын
i did not mean this sarcastically btw lolol
@marvhartigan3677
2 жыл бұрын
@@missgirl8210 haha its all in good spirit!
Pointer is a vital concept in understanding a lot of programming languages, for example, in JAVA, even though there is no "pointer" concept here, but the reference variable assigned to a new constructed instance is the interpretation of pointer in JAVA. So I think it can be kind of hard for people without C/C++ background to learn JAVA virtual machine, memory management etc.
this is probably the best video ever made on pointers.
love the fact that i can go fullscreen on my ultrawide with this video
#RIP LORD HUMBLEFOOL❤️🥂
Each and every word is priceless and music to our ears . Kudos to the instructor .
One of the best C++ tutorial I have ever seen. Thank you so much.
I never knew this man before....but after watching this and datastructures video I just want to see the person who taught me and saved me.......I came to know that he died in an accident. You are a talented person and your soul should rest in peace ......so tragic for a person who selflessly shared his knowledge...😔😔
@shashank_1107
2 жыл бұрын
How was the data structures video?
Thanks Quincy for this course. I know you're behind this great idea of bringing their videos together to make this all-at-one-place video.
@sra9an938
3 жыл бұрын
who is Quincy? btw this gold video is 8 years old made by animesh sir
@gamoholic7653
3 жыл бұрын
@@sra9an938 Quincy Larson is the founder of FreeCodeCamp
@sra9an938
3 жыл бұрын
@@gamoholic7653 oh yes thanks, I got to know that little late
My god, this is the best tutorial to watch if you want to fully understand pointers. Thank you for this amazing work!
This course has some wonders ! Thank you. Appreciate you time for this.
Animesh and Harsha, you both are all time great for me ❤️
Their course was the first course i did 5 years ago for pointers and data structures. It was really great course.
Thank you - thorough and patient explanations really helped me digest this material!
Thank you! Amazing job! Eventually understood properly pointers.
you know it's gonna be a good video as soon as you hear the indian accent , god bless everyone that teaches us something important
I already seen all the video ,great expaination........
This video was truly excellent. I was able to fully understand the concept of pointers and I am grateful for the clear explanation. It is by far the best resource on this topic that I have found on KZread.
Thank you for sharing. Your visual explanations make so much more sense than just reading a book on that matter.
Thank you, thank you, thank you. The concept of pointers has been a very confusing concept in my journey to learn to code in C/C++. This helps a lot!!! Thanks.
@thethorff5881
3 жыл бұрын
What about recursion 😂
@Hokageminato
2 жыл бұрын
@@thethorff5881 is that really hard