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.

EasyTechnical
65 practiced

What are the main techniques to prevent and detect buffer overflows in C beyond swapping in safer-looking library functions? Cover both coding practice and build-time or runtime defenses.

EasyTechnical
74 practiced

Describe the lifecycle of memory allocated with malloc and released with free. What ownership rules would you document for a team to prevent leaks, double frees, and accidental sharing of mutable buffers?

EasyTechnical
84 practiced

Write a small C function that reports whether the host is little-endian, and one that converts a 32-bit value to big-endian. What portability and strict-aliasing pitfalls should you avoid, and what bugs appear when code assumes host byte order matches the data format?

HardTechnical
84 practiced

You are designing a C event-loop API that stores a callback and a user-data pointer for later invocation. The callback may run long after registration, and callers can unregister at any time. What rules or safeguards would you put in place so the callback does not dereference freed memory?

MediumTechnical
89 practiced

Legacy C code reads a float's bits by casting a float pointer to a uint32_t pointer. Why is that undefined behavior, and what are two correct ways to reinterpret the value in both directions?

Unlock Full Question Bank

Get access to all 32 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.