@ShreyasGaneshs

This is my favourite course on bootdev need more C courses

@syylvia

wow... 9 months... this course is like his baby...

@jankarenagames1054

Now this is the C programming course that I need. 😊

@teej_dv

who is here in 2025??

@bobduncan-m8t

The course does so much with so little, i dont have to read trough a bunch of pages and its so easy to understand and progress

@m4rt_

A great way to avoid a lot of the pitfalls of manual memory management is to use an Arena (Ryan Fleury has some good resources on this) where you allocate a bunch of memory, and then use that memory for various things in your program.  You then have changed the lifetimes of the pointers you get from the arena to be the same as the lifetime of the Arena.  So when you are done with the arena, you can free the memory you allocated for the area, and not have to think any more about it.  It avoids memory leaks, as you essentially only have to remember freeing the arena itself, and it increases performance, as you only do one allocation and one de-allocation.

@nyzss

was shocked to see how in depth it got, i am an experienced C dev but still watched the last 2 chapters just for teej's quality teaching

@bobanmilisavljevic420

I was happy to C this in my suggestions!!

@IperialAndroid

Wow this is already the best C course I've encountered so far and I'm only 100 minutes in. This is very valuable as Teej covers so many subtle differences, nuances and quirks the language have, that I don't see covered in most introductory courses. I blv he acknowledged the secret footguns that can only be learned through years of experience of Coding C. Thanks i needed this

@Qqquuaa

I was just looking for C course and here we go, thank You Tj 👌

@ranjithkumar-xt2zw

Finally teej teaching zero index Language 😂😂

@KidAlphaMax

I love when the full course video for the course I am currently working out comes out at the perfect time!

@paca3107

I have no words how I am glad I found this. There are no many resources about garbage collector (at least on YT), so thank You TEEJ

@PalashBackup

1:29:07 - Some quick mafs there. I think what he meant was 4*32 =128. Then two integers (A and B) will add 8 bytes. 128 + 8 = 136 .

@ivantereshchenko3785

Really enjoyed the course, topics that I read about after taking the course that would have been cool to include:
1. C-specific tricks for memory management and avoiding memory errors.
2. Implementing arena allocators

@c__beck

We need more great C courses like this! PLEASE!

@utilyre

Oh what else is better to watch while having dinner than a full C course taught by teej

@SoreBrain

I love being able to take turns of doing the course and also watching the video. Makes every concept really settle in even more.
This is my first proper contact with a compiled language after coding for years in evil interpreted ones. Lots of fun.

@SAIYAN030-jw1wx

i was desperate to find a course that just doesn't teach me how to code but program and understand what really everything i see means, i am extremely motivated now, i spent 3 days into just research and luckily found this video, i appreciate this alot, thank you <3

@valentinrafael9201

1:08:01 padding matters when you look at the overall program and what you do with the struct ( eg: if you put multiple structs in an array, and you do largest to smallest, your smallest will touch the next largest so largest to smallest  vs smallest to largest ends up being the same thing ). One thing to remember is that 1 byte things ( bools / u8s and the likes ) do not need alignment themselves and the alignment of a struct is the size of the largest field ( and that's why padding happens). Inner-struct sorting matters, not who is at the start or at the end.

By the logic of the video, largest to smallest

typedef struct{
    double      a;
    float       b;
    char        c;
    char        d;
    char        e;
    char        f;
}Test;
8 + 4 + 1 +1 +1 +1 = 16bytes

Add one more char

typedef struct{
    double      a;
    float       b;
    char        c;
    char        d;
    char        e;
    char        f;
    char        g;
}Test;
8 + 4 + 1 +1 +1 + 1 + 1 (extra)= 24 bytes. Paid 7 bytes of padding for 1 byte, that's because the natural alignment is 8 ( the double ) so the struct was aligned before adding the extra field. Putting them from smallest to largest is obviously the same. This might seem like a small thing, but if you have tens, hundreds, or thousands of some type, that adds up to a lot. The more important lesson here is to be mindful of how the natural alignment affects the size, not how you order them, compilers are smart anyway, but also smallest to largest / largest to smallest is mathematically the same thing. The compiler however wont be able to do anything in this case with the extra byte, because it HAS to align it to 8 bytes, so what you could do is not put the field OR add 7 more bytes somehow ( like 7 more 1 byte things ). Alternatively, if it's possible you can add 1 field that holds flags if you have lots of bools. Do NOT PUT BOOLS IN STRUCTS EVER.