Option A: Dynamic memory allocation done at run time not at compile time.
Option B and C: both done at compile time where type checking done by semantic analyzer phase and symbol table done by all the phase of compiler.
Option D:- Most of my friend thinking about what is the real work of option D so here is the explaination of option D
“In computing, inline expansion, or inlining, is a manual or compiler optimization that replaces a function call site with the body of the called function. Inline expansion is similar to macro expansion, but occurs during compilation, without changing the source code (the text), while macro expansion occurs prior to compilation, and results in different text that is then processed by the compiler”.
SO CORRECT ANSWER IS OPTION A.