#include &lt;cstdlib&gt;    #include &lt;iostream&gt;    using namespace std;    class X     &#123;        public:        void* operator new&#40;size_t sz&#41; throw &#40;const char*&#41;        &#123;            void* p = malloc&#40;sz&#41;;            if &#40;p == 0&#41;                 throw &quot;malloc() failed&quot;;            return p;        &#125;        void operator delete&#40;void* p&#41;         &#123;            cout &lt;&lt; &quot;X :: operator delete(void*)&quot; &lt;&lt; endl;            free&#40;p&#41;;        &#125;     &#125;;    class Y     &#123;        int filler&#91;100&#93;;        public:        void operator delete&#40;void* p, size_t sz&#41; throw &#40;const char*&#41;        &#123;            cout &lt;&lt; &quot;Freeing &quot; &lt;&lt; sz &lt;&lt; &quot; bytes&quot; &lt;&lt; endl;            free&#40;p&#41;;        &#125;;    &#125;;    int main&#40;&#41;     &#123;        X* ptr = new X;        delete ptr;        Y* yptr = new Y;        delete yptr;    &#125;
A. X::operator delete(void*)
B. Freeing 400 bytes
C. Depends on the compiler
D. Both a & c
Answer:A
#include &lt;cstdlib&gt;    #include &lt;iostream&gt;    using namespace std;    class X     &#123;        public:        void* operator new&#40;size_t sz&#41; throw &#40;const char*&#41;        &#123;            void* p = malloc&#40;sz&#41;;            if &#40;p == 0&#41;                 throw &quot;malloc() failed&quot;;            return p;        &#125;        void operator delete&#40;void* p&#41;         &#123;            cout &lt;&lt; &quot;X :: operator delete(void*)&quot; &lt;&lt; endl;            free&#40;p&#41;;        &#125;     &#125;;    class Y     &#123;        int filler&#91;100&#93;;        public:        void operator delete&#40;void* p, size_t sz&#41; throw &#40;const char*&#41;        &#123;            cout &lt;&lt; &quot;Freeing &quot; &lt;&lt; sz &lt;&lt; &quot; bytes&quot; &lt;&lt; endl;            free&#40;p&#41;;        &#125;;    &#125;;    int main&#40;&#41;     &#123;        X* ptr = new X;        delete ptr;        Y* yptr = new Y;        delete yptr;    &#125;
A. X::operator delete(void*) B. Freeing 400 bytes C. Depends on the compiler D. Both a & c
Explanation:The memory value allocated for the program depends on compiler ony.