<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"><channel>
<title>Learn C</title>
<link>https://learn-c.net/</link>
<description>Free C tutorials, plus a catalogue of the memory-safety bugs language models reliably introduce in C, and how to catch them.</description>
<lastBuildDate>Sun, 06 Sep 2026 03:07:12 GMT</lastBuildDate>
<item><title>Hello, World!</title><link>https://learn-c.net/hello-world/</link><guid>https://learn-c.net/hello-world/</guid><description>The C programming language is a general purpose programming language, which relates closely to the way machines work.</description></item>
<item><title>Setting up a coding agent for a C project</title><link>https://learn-c.net/ai/agent-setup/</link><guid>https://learn-c.net/ai/agent-setup/</guid><description>In C the review is not optional, so the setup is about making the machine do as much of it as possible.</description></item>
<item><title>The C mistakes language models actually make</title><link>https://learn-c.net/review/failure-modes/</link><guid>https://learn-c.net/review/failure-modes/</guid><description>In most languages a generated bug is a wrong answer. In C it is a vulnerability. This is the catalogue, and the tooling that makes it survivable.</description></item>
<item><title>Variables and Types</title><link>https://learn-c.net/variables-and-types/</link><guid>https://learn-c.net/variables-and-types/</guid><description>C has several types of variables, but there are a few basic types: The different types of variables define their bounds.</description></item>
<item><title>Arrays</title><link>https://learn-c.net/arrays/</link><guid>https://learn-c.net/arrays/</guid><description>Arrays are special variables which can hold more than one value under the same variable name, organised with an index.</description></item>
<item><title>Dependency hygiene in C, where there is no package manager</title><link>https://learn-c.net/review/dependencies/</link><guid>https://learn-c.net/review/dependencies/</guid><description>No registry means no slopsquatting — and also no lockfile, no audit command, and no automatic way to learn that the library you vendored in 2022 has a CVE.</description></item>
<item><title>Writing an AGENTS.md for C</title><link>https://learn-c.net/ai/agents-md/</link><guid>https://learn-c.net/ai/agents-md/</guid><description>The one language where the instructions file should be blunt, specific, and mostly about memory — because the compiler will happily accept everything it forbids.</description></item>
<item><title>Local inference economics: where the cost is memory bandwidth</title><link>https://learn-c.net/ai/tokenomics/</link><guid>https://learn-c.net/ai/tokenomics/</guid><description>Nobody calls a hosted model from C. If C is in your stack, you are running the model — and the currency is not tokens, it is bytes moved per second.</description></item>
<item><title>Multidimensional Arrays</title><link>https://learn-c.net/multidimensional-arrays/</link><guid>https://learn-c.net/multidimensional-arrays/</guid><description>In the previous tutorials on Arrays, we covered, well, arrays and how they work.</description></item>
<item><title>Security review for generated C beyond memory safety</title><link>https://learn-c.net/review/security/</link><guid>https://learn-c.net/review/security/</guid><description>The memory bugs have their own catalogue. This is the rest of the threat model: input you did not validate, privilege you did not drop, and races you did not know were there.</description></item>
<item><title>Conditions</title><link>https://learn-c.net/conditions/</link><guid>https://learn-c.net/conditions/</guid><description>In life, we all have to make decisions. In order to make a decision we weigh out our options and so do our programs.</description></item>
<item><title>The performance traps in generated C</title><link>https://learn-c.net/review/performance/</link><guid>https://learn-c.net/review/performance/</guid><description>In C the compiler is a better optimiser than you are, so the interesting problems are the ones it cannot fix: memory layout, allocation in hot loops, and asking the wrong question.</description></item>
<item><title>Strings</title><link>https://learn-c.net/strings/</link><guid>https://learn-c.net/strings/</guid><description>Strings in C are actually arrays of characters.</description></item>
<item><title>For loops</title><link>https://learn-c.net/for-loops/</link><guid>https://learn-c.net/for-loops/</guid><description>For loops in C are straightforward. They supply the ability to create a loop - a code block that runs multiple times.</description></item>
<item><title>While loops</title><link>https://learn-c.net/while-loops/</link><guid>https://learn-c.net/while-loops/</guid><description>While loops are similar to for loops, but have less functionality.</description></item>
<item><title>Functions</title><link>https://learn-c.net/functions/</link><guid>https://learn-c.net/functions/</guid><description>C functions are simple, but because of how C works, the power of functions is a bit limited.</description></item>
<item><title>Static</title><link>https://learn-c.net/static/</link><guid>https://learn-c.net/static/</guid><description>static is a keyword in the C programming language. It can be used with variables and functions. By default, variables are local to the scope in which they are defined.</description></item>
<item><title>Enums, typedef and const</title><link>https://learn-c.net/enums-typedef-const/</link><guid>https://learn-c.net/enums-typedef-const/</guid><description>Three small features that decide how readable a C codebase is — and one of them is your only real defence against accidental mutation.</description></item>
<item><title>Pointers</title><link>https://learn-c.net/pointers/</link><guid>https://learn-c.net/pointers/</guid><description>Pointers are also variables and play a very important role in C programming language. They are used for several reasons, such as: And many more.</description></item>
<item><title>Structures</title><link>https://learn-c.net/structures/</link><guid>https://learn-c.net/structures/</guid><description>C structures are special, large variables which contain several named variables inside. Structures are the basic foundation for objects and classes in C.</description></item>
<item><title>Function arguments by reference</title><link>https://learn-c.net/function-arguments-by-reference/</link><guid>https://learn-c.net/function-arguments-by-reference/</guid><description>Assumingly you’re already know pointers and functions, so you are aware of that function arguments are passed by value, which means they are copied in and out of functions.</description></item>
<item><title>Dynamic allocation</title><link>https://learn-c.net/dynamic-allocation/</link><guid>https://learn-c.net/dynamic-allocation/</guid><description>Dynamic allocation of memory is a very important subject in C. It allows building complex data structures such as linked lists.</description></item>
<item><title>Arrays and Pointers</title><link>https://learn-c.net/arrays-and-pointers/</link><guid>https://learn-c.net/arrays-and-pointers/</guid><description>In a previous tutorial on [[Pointers]], you learned that a pointer to a given data type can store the address of any variable of that particular data type.</description></item>
<item><title>Recursion</title><link>https://learn-c.net/recursion/</link><guid>https://learn-c.net/recursion/</guid><description>Recursion occurs when a function contains within it a call to itself. Recursion can result in very neat, elegant code that is intuitive to follow.</description></item>
<item><title>Linked lists</title><link>https://learn-c.net/linked-lists/</link><guid>https://learn-c.net/linked-lists/</guid><description>Linked lists are the best and simplest example of a dynamic data structure that uses pointers for its implementation.</description></item>
<item><title>Binary trees</title><link>https://learn-c.net/binary-trees/</link><guid>https://learn-c.net/binary-trees/</guid><description>A Binary Tree is a type of data structure in which each node has at most two children (left child and right child).</description></item>
<item><title>Unions</title><link>https://learn-c.net/unions/</link><guid>https://learn-c.net/unions/</guid><description>C Unions are essentially the same as C Structures, except that instead of containing multiple variables each with their own memory a Union allows for multiple names to the same variable.</description></item>
<item><title>Pointer Arithmetics</title><link>https://learn-c.net/pointer-arithmetics/</link><guid>https://learn-c.net/pointer-arithmetics/</guid><description>You previously learned what is a pointer and how to manipulate pointers. In this tutorial you will be learning the arithmetic operations on pointers.</description></item>
<item><title>Function Pointers</title><link>https://learn-c.net/function-pointers/</link><guid>https://learn-c.net/function-pointers/</guid><description>Remember pointers? We used them to point to an array of chars then make a string out of them.</description></item>
<item><title>Bitmasks</title><link>https://learn-c.net/bitmasks/</link><guid>https://learn-c.net/bitmasks/</guid><description>Bit masking is simply the process of storing data truly as bits, as opposed to storing it as chars/ints/floats.</description></item>
</channel></rss>