Beta 0.35.0
Beta
Search
Dashboard
Learn
Exercises
Challenges
Compete
Visualizer
What's new
v0.35.0
Search
Search for a chapter, module, exercise, challenge, page, or profile
Dashboard
Learn
Exercises
Challenges
Compete
Visualizer
Sign in
Path
Learn C graph
Catalog preview
0%
Get started
0 / 5 modules
Structure your code
0 / 4 modules
Text
0 / 6 modules
Memory
0 / 3 modules
Your own types
0 / 5 modules
The machine
0 / 4 modules
The system
0 / 1 modules
First program
0 / 7
Read the error
0 / 5
Types and values
0 / 7
Conditions and loops
0 / 7
Command line
0 / 6
Functions
0 / 5
Recursion
0 / 6
Pointers
0 / 7
Arrays and matrices
0 / 7
Characters and ASCII
0 / 4
Strings: walking and…
0 / 6
Writing text without…
0 / 4
Words and tokens
0 / 4
Transforming text
0 / 5
Numbers and bases
0 / 6
Dynamic memory
0 / 5
Bytes and raw memory
0 / 4
Memory safety
0 / 6
Structs, unions, enu…
0 / 6
Headers and the prep…
0 / 3
Linked lists
0 / 4
Stacks, queues, trees
0 / 3
Generic code
0 / 3
Bits and representat…
0 / 4
Sorting and searching
0 / 7
Files and streams
0 / 3
Parsing and formats
0 / 4
Processes and signals
0 / 4
C foundations checkpo…
5 tasks · not ready
Code structure checkp…
4 tasks · not ready
Text handling checkpo…
5 tasks · not ready
Memory safety checkpo…
3 tasks · not ready
Types and data struct…
4 tasks · not ready
Machine model checkpo…
4 tasks · not ready
Processes and signals…
2 tasks · not ready
Chapter checkpoints
100%
Fit
Dynamic memory
Allocating, growing and releasing memory, and who owns what.
Required exercises
0 / 5
5 required exercises
·
3 optional
·
Difficulty 3 to 5
·
0 / 176 XP
Exercises · 8
Exercise
Level
XP
Status
strdup
char *strdup(const char *src)
+16
New
free_str_array
size_t free_str_array(char **arr)
+16
New
str_join
char *str_join(char **parts, size_t n, char sep)
+16
New
arena_alloc
void *arena_alloc(size_t n)
+16
New
heap_alloc
void *heap_alloc(size_t n)
+32
New
calloc
Optional
void *calloc(size_t nmemb, size_t size)
+24
New
split
Optional
char **split(char *str, char *charset)
+24
New
mem_resize
Optional
void *mem_resize(void *ptr, size_t old_size, size_t new_size)
+32
New
View module
Complete
Recommended now
In progress
Available
Learn checkpoint