Language-Level Memory Management (C/C++/Rust) Questions

How C and C++ expose and manage memory at the language level: pointers and pointer arithmetic, pointers to pointers and function pointers, arrays versus pointers and array decay, stack versus heap storage, manual allocation and freeing in C (malloc, realloc, free), new and delete versus malloc and free, placement new, RAII and owning smart pointers (unique_ptr, including custom deleters for C resources), shallow versus deep copies and move semantics in C++. Covers reasoning about who owns a buffer and designing ownership and lifetime contracts across function, library and plugin boundaries; dangling and uninitialized pointers, leaks, double frees, use-after-free, off-by-one errors and buffer overruns and how to prevent them; undefined behavior, strict aliasing and safe byte reinterpretation, endianness; struct layout, alignment and padding as the language defines them; and finding and diagnosing memory bugs with sanitizers, Valgrind-style tools, tracing allocators and heap-corruption triage, including allocator design and heap fragmentation at the language level. Boundary: garbage-collector behavior and tuning, embedded memory budgets, register access and packing structs to hardware layouts, OS virtual memory and paging, and lock-based concurrency are covered elsewhere.

MediumTechnical
112 practiced

What is strict aliasing in C and C++, and why can violating it cause bugs that appear only under optimization? What idioms do you use to inspect or reinterpret raw bytes safely?

EasyTechnical
62 practiced

What are alignment and padding in C structs, and why do they matter when you copy structs across platforms or reason about sizeof?

EasyTechnical
88 practiced

What is a dangling pointer? Show how one arises after free or from returning the address of a local variable, and how you would make the bug easier to catch in review and testing.

HardTechnical
67 practiced

A long-running C++ server develops latency spikes that you suspect come from heap fragmentation. How would you confirm fragmentation, which tools would you use, and when would you reach for pooling, a custom or arena allocator, or reduced object churn?

EasyTechnical
115 practiced

How does an array differ from a pointer in C, particularly when passed to a function? Why does array-to-pointer decay lead to length-handling and bounds-check bugs, and what does sizeof return in each case?

Unlock Full Question Bank

Get access to all 14 Language-Level Memory Management (C/C++/Rust) interview questions and detailed answers.

Sign in to Continue

Join thousands of developers preparing for their dream job.