C-Low level Programming Author Kevin Kipkoech
Introduction to C programming and writing.
Introduction to variables, if-else statements, and while loops in C programming.
Introduction to functions and nested loops in C programming.
Introduction to debugging techniques in C programming.
Introduction to more functions and nested loops in C programming.
Introduction to pointers, arrays, and strings in C programming.
Introduction to pointers, arrays, and strings with more advanced concepts in C programming.
Introduction to even more advanced concepts of pointers, arrays, and strings in C programming.
Introduction to recursion in C programming.
Introduction to static libraries in C programming.
Introduction to argc and argv in C programming.
Introduction to dynamic memory allocation and freeing memory in C programming.
Introduction to more advanced concepts of dynamic memory allocation and freeing memory in C programming.
Introduction to the preprocessor in C programming.
Introduction to structures and typedef in C programming.
Introduction to function pointers in C programming.
Introduction to variadic functions in C programming.
Introduction to singly linked lists in C programming.
Introduction to more advanced concepts of singly linked lists in C programming.
Introduction to file input/output operations in C programming.
Introduction to dynamic libraries and code injection with LD_PRELOAD in C programming.
Introduction to Hash Tables in C programming:
Hash tables are data structures that implement an associative array abstract data type, a structure that can map keys to values. They work by transforming the key using a hash function into a hash, which is then used as an index to store or retrieve data. This allows for fast retrieval of data, often with average constant-time complexity,making hash tables efficient for many applications such as database indexing, caches, and symbol tables in compilers. They are applied in scenarios where efficient data retrieval based on keys is required Hash tables are implemented using arrays and linked lists or other data structures to handle collisions, where multiple keys map to the same hash value. Techniques like chaining or open addressing are commonly employed to resolve collisions