Beta 0.40.0
Beta
Search
Dashboard
Learn
Exercises
Studio
Challenges
Compete
Visualizer
Studio
New
What's new
v0.40.0
About
·
Terms
Toggle Sidebar
Profile
Dashboard
Learn
Exercises
Challenges
Search
Search for a chapter, module, exercise, challenge, page, or profile
Dashboard
Learn
Exercises
Studio
Challenges
Compete
Visualizer
Sign in
v0.40: Create exercises. Challenge the community.
Meet Studio →
Back to profile
YU
Learn C
yuuuri01's path
View graph
96
/
142
96 / 142 required exercises
68%
Structure your code
Text
Memory
Your own types
The machine
The system
Get started
You compile, you print, and you read what the compiler tells you.
2 / 5 complete
5 modules
First program
Complete
The edit, compile, read the verdict loop.
7
/
7
7 / 7 required
1 to 2
Read the error
Complete
Reading a compiler diagnostic and fixing the line it points at.
Structure your code
You split a problem into functions and reach values through pointers.
1 / 4 complete
Text
You read, write and transform text without ever leaving the buffer.
6 / 6 complete
Memory
You own every allocation you make, and you can prove there is no leak.
Your own types
You model data with your own types and hide them behind an interface.
2 / 5 complete
The machine
You reason about bits, cost and files the way the machine does.
1 / 4 complete
The system
You make processes talk to each other without ever blocking.
0 / 1 complete
5
/
5
5 / 5 required
1 to 2
Types and values
In progress
Integer types, implicit conversions, promotions and overflow.
3
/
7
3 / 7 required
2 to 3
Conditions and loops
In progress
Branching and the three loop forms, chosen on purpose.
4
/
7
4 / 7 required
2 to 3
Command line
In progress
Reading `argc` and `argv`, and reporting a bad invocation.
5
/
6
5 / 6 required
2 to 3
4 modules
Functions
Complete
Declaration, definition, and the contract a function honours.
5
/
5
5 / 5 required
2 to 4
Recursion
In progress
Base case, recursive case, and the call stack underneath.
1
/
6
1 / 6 required
2 to 3
Pointers
In progress
Address, dereference, output parameter, and the half-open range.
6
/
7
6 / 7 required
2 to 4
Arrays and matrices
In progress
One and two dimensional arrays, row-major order, and array decay.
6
/
7
6 / 7 required
2 to 4
6 modules
Characters and ASCII
Complete
The byte as a value, the ASCII table, and the classification predicates.
4
/
4
4 / 4 required
2 to 2
Strings: walking and searching
Complete
A string is an array of bytes plus its terminator, and nothing more.
6
/
6
6 / 6 required
2 to 4
Writing text without overflowing
Complete
Capacity, termination, and the truncation you have to decide on.
4
/
4
4 / 4 required
3 to 4
Words and tokens
Complete
Word boundaries, tokenising, and normalising whitespace.
4
/
4
4 / 4 required
3 to 4
Transforming text
Complete
Character to character mapping, in place against out of place.
5
/
5
5 / 5 required
3 to 4
Numbers and bases
Complete
Text to number and back, in any base, without wrapping around.
6
/
6
6 / 6 required
3 to 5
1 / 3 complete
3 modules
Dynamic memory
In progress
Allocating, growing and releasing memory, and who owns what.
1
/
5
1 / 5 required
3 to 5
Bytes and raw memory
Complete
The untyped byte, `void *`, and regions that overlap.
4
/
4
4 / 4 required
3 to 4
Memory safety
Bounds, use after free, double free, and reading a leak report.
0
/
6
0 / 6 required
2 to 3
5 modules
Structs, unions, enums
Grouping fields into a record, and what the compiler does with it.
0
/
6
0 / 6 required
2 to 3
Headers and the preprocessor
Splitting a program across files, and what the preprocessor pastes.
0
/
3
0 / 3 required
2 to 4
Linked lists
Complete
Re-linking nodes, and walking a chain you cannot index.
4
/
4
4 / 4 required
3 to 4
Stacks, queues, trees
Complete
An abstract data type is an interface plus an invariant.
3
/
3
3 / 3 required
4 to 5
Generic code
In progress
Function pointers, comparators, and a pointer plus a size.
1
/
3
1 / 3 required
4 to 5
4 modules
Bits and representation
Complete
Bitwise operators, masks, shifts, and how a value is laid out.
4
/
4
4 / 4 required
2 to 4
Sorting and searching
In progress
Loop invariants, halving a range, and what an algorithm costs.
1
/
7
1 / 7 required
2 to 4
Files and streams
In progress
Reading and writing a stream without loading all of it at once.
2
/
3
2 / 3 required
3 to 5
Parsing and formats
In progress
Tokenising, state machines, and recursive descent.
3
/
4
3 / 4 required
4 to 5
1 module
Processes and signals
In progress
Spawning processes, wiring them together, and staying responsive.
2
/
4
2 / 4 required
5 to 5