C — Linked list (structs, malloc, pointers)
A realistic C program: a singly linked list with a typedef struct, malloc/free memory management, pointer walking, and error handling — for testing highlighters, compilers, and static analysers.
/* A singly linked list of integers: a struct, malloc/free, and pointer walking. */
#include <stdio.h>
#include <stdlib.h>
typedef struct Node {
int value;
struct Node *next;
} Node;
static Node *push(Node *head, int value) {
Node *node = malloc(sizeof(Node));
if (node == NULL) {
perror("malloc");
exit(EXIT_FAILURE);
}
node->value = value;
node->next = head;
return node;
}
static long sum(const Node *head) {
long total = 0;
for (const Node *n = head; n != NULL; n = n->next) {
total += n->value;
}
return total;
}
static void free_list(Node *head) {
while (head != NULL) {
Node *next = head->next;
free(head);
head = next;
}
}
int main(void) {
Node *list = NULL;
for (int i = 1; i <= 5; i++) {
list = push(list, i * i);
}
printf("sum of squares = %ld\n", sum(list));
free_list(list);
return 0;
}
Specifications
- Language
- C
- Kind
- realistic snippet
- Lines
- 45
- Encoding
- UTF-8
- Line Endings
- LF
Testing contract
Expected to pass- Scenario
- Compile the file, run it, and then run it again under a leak checker such as valgrind or ASan.
- Expected result
- It prints `sum of squares = 55` (1+4+9+16+25) and exits 0, and the leak checker reports zero leaks: every one of the five `malloc` calls is matched by a `free` in `free_list`. A malloc failure path calls `perror` and exits, so it is also a fixture for testing that the checker sees the error branch.
What is a .c file?
C (.c) is a plain-text source file for the C programming language — a low-level, statically typed, compiled language that maps closely to hardware. It underpins operating systems, embedded firmware, and language runtimes, using manual memory management, pointers, structs, and the preprocessor.
How to use this file
Use an example .c file to test syntax highlighters, C compilers (gcc, clang) and their diagnostics, static analysers, formatters (clang-format), and parser or highlighting tooling.
How to use this file for testing
“C — Linked list (structs, malloc, pointers)” is a deterministic Novus Examples fixture for Syntax highlighting, Code parsing, Editor testing. Idiomatic hello-world programs and realistic snippets across sixteen languages, exercising comments, string escapes, interpolation, numeric literals, and language keywords — for testing syntax highlighters, editor themes, and tree-sitter grammars.
Documented properties for this file: C · UTF-8 · LF. Compare results against paired or grouped companions on this page when present (clean↔damaged, searchable↔scanned, or format twins) so scores stay reproducible across runs.
Download the file once, keep the path stable in CI or local scripts, and treat the spec table as the contract: dimensions, seeds, field lists, and roles are intentional. Corrupt or invalid samples are labelled as such — expect parsers to fail loudly rather than silently accept them.
This is a short, known-correct source file. Run it through your syntax highlighter, linter, formatter, tree-sitter grammar, or parser, and open it in the in-browser editor to tweak and re-download. Each snippet exercises comments, string escapes, literals, and language keywords.
Code examples
cc linked-list.c -o prog && ./progRelated files
- cC — Hello WorldThe classic hello-world in C — an include, main, and printf — for testing highlighters, C compilers, and parsers against the canonical first program.

- cC StructC struct SAMPLE for clangd / highlighter fixtures.

- csC# FibonacciA small C# iterator Fibonacci utility — realistic snippet for language tooling.

- csC# HelloIdiomatic C# hello-world for syntax highlighters and Roslyn-style parsers.

- csC# LINQ SAMPLEC# LINQ chain SAMPLE for Roslyn fixtures.

- cppC++ — Hello WorldThe classic hello-world in C++ — iostream and std::cout — for testing highlighters, C++ compilers, and parsers.

Generated by generation/code_samples.py. Free for any use, no attribution required — license.