c / c-arrays-strings
25 mins
C Level 10: Systems Debugging & Memory Diagrams
Why This Matters: Top software engineers reason about memory layout to diagnose crashes, segfaults, and security vulnerabilities.
## Systems Debugging & Memory Safety C gives raw access to memory without safety nets. ### The 4 Great C Memory Pitfalls 1. **Segmentation Fault**: Dereferencing NULL or unmapped RAM addresses. 2. **Buffer Overflow**: Writing past the allocated bounds of an array/string buffer. 3. **Memory Leak**: Allocating heap memory via malloc without calling free(). 4. **Dangling Pointer**: Accessing memory after calling free(ptr).
MENTAL MODEL & MEMORY LAYOUT
DEFENSIVE POINTER GUARD:
[ Check ptr != NULL ] ──(True)──► [ Access Memory Safe ]
│
(False)
▼
[ Prevent Segfault Crash ] COMMON PITFALLS TO AVOID
- Assuming string literal `char *s = "hello";` is writable (causes Segfault).
- Omitting defensive pointer NULL checks in public functions.
Defensive Pointer Guard Pattern
#include <stdio.h>
void safePrint(char *str) {
if (str == NULL) {
printf("Guard: Pointer is NULL!\n");
return;
}
printf("String: %s\n", str);
}
int main() {
safePrint(NULL);
safePrint("C Master");
return 0;
}Guard clause prevents null pointer dereference crashes.
CONCEPT MASTERY CHECKPOINT
What is the primary cause of a Segmentation Fault in C programs?
NEXT RECOMMENDED LESSON
Python Level 0: Orientation & Interpreter
Challenge: Write a function `void safePrint(char *str)` that prints str if non-null, else prints 'NULL'.