Skip to main content

index

docs/
└── tutorials/
└── c/
β”œβ”€β”€ index.mdx
β”‚
β”œβ”€β”€ 01-getting-started/
β”‚ β”œβ”€β”€ what-is-c.mdx
β”‚ β”œβ”€β”€ history-and-features.mdx
β”‚ β”œβ”€β”€ install-c-compiler.mdx
β”‚ β”œβ”€β”€ setup-vscode.mdx
β”‚ β”œβ”€β”€ gcc-and-clang.mdx
β”‚ β”œβ”€β”€ compile-and-run-c.mdx
β”‚ └── first-c-program.mdx
β”‚
β”œβ”€β”€ 02-c-fundamentals/
β”‚ β”œβ”€β”€ program-structure.mdx
β”‚ β”œβ”€β”€ tokens-and-keywords.mdx
β”‚ β”œβ”€β”€ variables-and-constants.mdx
β”‚ β”œβ”€β”€ data-types.mdx
β”‚ β”œβ”€β”€ format-specifiers.mdx
β”‚ β”œβ”€β”€ type-conversion.mdx
β”‚ β”œβ”€β”€ operators.mdx
β”‚ β”œβ”€β”€ comments-and-documentation.mdx
β”‚ └── naming-conventions.mdx
β”‚
β”œβ”€β”€ 03-input-output-and-control-flow/
β”‚ β”œβ”€β”€ printf-and-scanf.mdx
β”‚ β”œβ”€β”€ character-input-output.mdx
β”‚ β”œβ”€β”€ if-else-statements.mdx
β”‚ β”œβ”€β”€ switch-statements.mdx
β”‚ β”œβ”€β”€ for-loops.mdx
β”‚ β”œβ”€β”€ while-loops.mdx
β”‚ β”œβ”€β”€ do-while-loops.mdx
β”‚ β”œβ”€β”€ break-and-continue.mdx
β”‚ └── nested-control-flow.mdx
β”‚
β”œβ”€β”€ 04-functions-and-scope/
β”‚ β”œβ”€β”€ function-fundamentals.mdx
β”‚ β”œβ”€β”€ function-declarations.mdx
β”‚ β”œβ”€β”€ parameters-and-return-values.mdx
β”‚ β”œβ”€β”€ call-by-value.mdx
β”‚ β”œβ”€β”€ recursion.mdx
β”‚ β”œβ”€β”€ variable-scope.mdx
β”‚ β”œβ”€β”€ storage-classes.mdx
β”‚ β”œβ”€β”€ static-and-extern.mdx
β”‚ └── header-files.mdx
β”‚
β”œβ”€β”€ 05-arrays-and-strings/
β”‚ β”œβ”€β”€ array-fundamentals.mdx
β”‚ β”œβ”€β”€ multidimensional-arrays.mdx
β”‚ β”œβ”€β”€ array-traversal.mdx
β”‚ β”œβ”€β”€ character-arrays.mdx
β”‚ β”œβ”€β”€ c-strings.mdx
β”‚ β”œβ”€β”€ string-library-functions.mdx
β”‚ β”œβ”€β”€ string-comparison.mdx
β”‚ β”œβ”€β”€ string-tokenization.mdx
β”‚ └── safe-string-handling.mdx
β”‚
β”œβ”€β”€ 06-pointers/
β”‚ β”œβ”€β”€ pointer-fundamentals.mdx
β”‚ β”œβ”€β”€ addresses-and-dereferencing.mdx
β”‚ β”œβ”€β”€ pointers-and-arrays.mdx
β”‚ β”œβ”€β”€ pointer-arithmetic.mdx
β”‚ β”œβ”€β”€ pointers-and-functions.mdx
β”‚ β”œβ”€β”€ pointer-to-pointer.mdx
β”‚ β”œβ”€β”€ null-pointers.mdx
β”‚ β”œβ”€β”€ void-pointers.mdx
β”‚ β”œβ”€β”€ function-pointers.mdx
β”‚ └── common-pointer-mistakes.mdx
β”‚
β”œβ”€β”€ 07-structures-unions-and-enums/
β”‚ β”œβ”€β”€ structures.mdx
β”‚ β”œβ”€β”€ structure-members.mdx
β”‚ β”œβ”€β”€ arrays-of-structures.mdx
β”‚ β”œβ”€β”€ pointers-to-structures.mdx
β”‚ β”œβ”€β”€ nested-structures.mdx
β”‚ β”œβ”€β”€ unions.mdx
β”‚ β”œβ”€β”€ enumerations.mdx
β”‚ β”œβ”€β”€ typedef.mdx
β”‚ └── bit-fields.mdx
β”‚
β”œβ”€β”€ 08-dynamic-memory-management/
β”‚ β”œβ”€β”€ stack-and-heap.mdx
β”‚ β”œβ”€β”€ malloc.mdx
β”‚ β”œβ”€β”€ calloc.mdx
β”‚ β”œβ”€β”€ realloc.mdx
β”‚ β”œβ”€β”€ free.mdx
β”‚ β”œβ”€β”€ memory-ownership.mdx
β”‚ β”œβ”€β”€ memory-leaks.mdx
β”‚ β”œβ”€β”€ dangling-pointers.mdx
β”‚ └── buffer-overflows.mdx
β”‚
β”œβ”€β”€ 09-preprocessor-and-build-process/
β”‚ β”œβ”€β”€ preprocessing-overview.mdx
β”‚ β”œβ”€β”€ include-directives.mdx
β”‚ β”œβ”€β”€ define-and-undef.mdx
β”‚ β”œβ”€β”€ macros.mdx
β”‚ β”œβ”€β”€ conditional-compilation.mdx
β”‚ β”œβ”€β”€ header-guards.mdx
β”‚ β”œβ”€β”€ compilation-stages.mdx
β”‚ β”œβ”€β”€ linking-and-libraries.mdx
β”‚ └── makefiles-basics.mdx
β”‚
β”œβ”€β”€ 10-file-handling/
β”‚ β”œβ”€β”€ file-pointers.mdx
β”‚ β”œβ”€β”€ fopen-and-fclose.mdx
β”‚ β”œβ”€β”€ reading-text-files.mdx
β”‚ β”œβ”€β”€ writing-text-files.mdx
β”‚ β”œβ”€β”€ formatted-file-io.mdx
β”‚ β”œβ”€β”€ binary-file-io.mdx
β”‚ β”œβ”€β”€ file-positioning.mdx
β”‚ β”œβ”€β”€ error-handling-for-files.mdx
β”‚ └── csv-file-processing.mdx
β”‚
β”œβ”€β”€ 11-standard-library/
β”‚ β”œβ”€β”€ stdio.h.mdx
β”‚ β”œβ”€β”€ stdlib.h.mdx
β”‚ β”œβ”€β”€ string.h.mdx
β”‚ β”œβ”€β”€ math.h.mdx
β”‚ β”œβ”€β”€ ctype.h.mdx
β”‚ β”œβ”€β”€ time.h.mdx
β”‚ β”œβ”€β”€ assert.h.mdx
β”‚ β”œβ”€β”€ stdint.h-and-size-t.mdx
β”‚ └── errno-and-error-reporting.mdx
β”‚
β”œβ”€β”€ 12-data-structures/
β”‚ β”œβ”€β”€ data-structures-overview.mdx
β”‚ β”œβ”€β”€ linked-lists.mdx
β”‚ β”œβ”€β”€ doubly-linked-lists.mdx
β”‚ β”œβ”€β”€ stacks.mdx
β”‚ β”œβ”€β”€ queues.mdx
β”‚ β”œβ”€β”€ circular-queues.mdx
β”‚ β”œβ”€β”€ hash-tables.mdx
β”‚ β”œβ”€β”€ binary-trees.mdx
β”‚ β”œβ”€β”€ binary-search-trees.mdx
β”‚ └── heaps-and-priority-queues.mdx
β”‚
β”œβ”€β”€ 13-algorithms-and-complexity/
β”‚ β”œβ”€β”€ algorithm-fundamentals.mdx
β”‚ β”œβ”€β”€ time-and-space-complexity.mdx
β”‚ β”œβ”€β”€ linear-and-binary-search.mdx
β”‚ β”œβ”€β”€ bubble-and-selection-sort.mdx
β”‚ β”œβ”€β”€ insertion-sort.mdx
β”‚ β”œβ”€β”€ merge-sort.mdx
β”‚ β”œβ”€β”€ quicksort.mdx
β”‚ β”œβ”€β”€ recursion-and-backtracking.mdx
β”‚ β”œβ”€β”€ graph-traversal.mdx
β”‚ └── algorithm-practice.mdx
β”‚
β”œβ”€β”€ 14-advanced-c/
β”‚ β”œβ”€β”€ pointer-qualifiers.mdx
β”‚ β”œβ”€β”€ const-volatile-and-restrict.mdx
β”‚ β”œβ”€β”€ alignment-and-padding.mdx
β”‚ β”œβ”€β”€ endianness.mdx
β”‚ β”œβ”€β”€ undefined-behavior.mdx
β”‚ β”œβ”€β”€ implementation-defined-behavior.mdx
β”‚ β”œβ”€β”€ variadic-functions.mdx
β”‚ β”œβ”€β”€ flexible-array-members.mdx
β”‚ β”œβ”€β”€ atomics-and-stdatomic.mdx
β”‚ └── c-language-standards.mdx
β”‚
β”œβ”€β”€ 15-debugging-and-testing/
β”‚ β”œβ”€β”€ compiler-warnings.mdx
β”‚ β”œβ”€β”€ debugging-with-gdb.mdx
β”‚ β”œβ”€β”€ debugging-with-lldb.mdx
β”‚ β”œβ”€β”€ assertions.mdx
β”‚ β”œβ”€β”€ unit-testing.mdx
β”‚ β”œβ”€β”€ addresssanitizer.mdx
β”‚ β”œβ”€β”€ undefinedbehaviorsanitizer.mdx
β”‚ β”œβ”€β”€ valgrind-memory-checking.mdx
β”‚ └── static-analysis.mdx
β”‚
β”œβ”€β”€ 16-systems-programming/
β”‚ β”œβ”€β”€ processes-and-memory.mdx
β”‚ β”œβ”€β”€ command-line-arguments.mdx
β”‚ β”œβ”€β”€ environment-variables.mdx
β”‚ β”œβ”€β”€ signals-and-handlers.mdx
β”‚ β”œβ”€β”€ sockets-introduction.mdx
β”‚ β”œβ”€β”€ tcp-client-server.mdx
β”‚ β”œβ”€β”€ threads-with-pthreads.mdx
β”‚ └── platform-specific-apis.mdx
β”‚
β”œβ”€β”€ 17-secure-c-programming/
β”‚ β”œβ”€β”€ secure-c-fundamentals.mdx
β”‚ β”œβ”€β”€ bounds-checking.mdx
β”‚ β”œβ”€β”€ integer-overflow.mdx
β”‚ β”œβ”€β”€ format-string-vulnerabilities.mdx
β”‚ β”œβ”€β”€ safe-memory-management.mdx
β”‚ β”œβ”€β”€ input-validation.mdx
β”‚ β”œβ”€β”€ secure-file-handling.mdx
β”‚ └── secure-c-checklist.mdx
β”‚
β”œβ”€β”€ 18-projects/
β”‚ β”œβ”€β”€ console-calculator.mdx
β”‚ β”œβ”€β”€ number-guessing-game.mdx
β”‚ β”œβ”€β”€ student-record-manager.mdx
β”‚ β”œβ”€β”€ contact-management-system.mdx
β”‚ β”œβ”€β”€ file-compression-tool.mdx
β”‚ β”œβ”€β”€ custom-data-structures-library.mdx
β”‚ β”œβ”€β”€ command-line-task-manager.mdx
β”‚ └── tcp-chat-application.mdx
β”‚
β”œβ”€β”€ 19-practice/
β”‚ β”œβ”€β”€ beginner-exercises.mdx
β”‚ β”œβ”€β”€ intermediate-exercises.mdx
β”‚ β”œβ”€β”€ pointer-challenges.mdx
β”‚ β”œβ”€β”€ memory-management-challenges.mdx
β”‚ β”œβ”€β”€ data-structure-exercises.mdx
β”‚ β”œβ”€β”€ quizzes.mdx
β”‚ └── interview-questions.mdx
β”‚
β”œβ”€β”€ reference/
β”‚ β”œβ”€β”€ c-syntax-cheatsheet.mdx
β”‚ β”œβ”€β”€ operators-reference.mdx
β”‚ β”œβ”€β”€ standard-library-reference.mdx
β”‚ β”œβ”€β”€ format-specifiers-reference.mdx
β”‚ β”œβ”€β”€ compiler-commands.mdx
β”‚ β”œβ”€β”€ common-errors.mdx
β”‚ └── glossary.mdx
β”‚
└── assets/
β”œβ”€β”€ images/
└── diagrams/