Examveda

What will be the output of the following C++ code?
#include <iostream>
#include <new>
#include <cstdlib>
using namespace std;
const int bsize = 512;
int *pa;
bool allocate = true;
void get_memory() 
{
    cerr << "free store exhausted" << endl;
    delete [] pa;
    allocate = false;
}
void eat_memory(int size) 
{
    int *p = new int[size];
    if (allocate)
        eat_memory(size);
    else
        cerr << "free store addr = " << p << endl;
}
int main()
{
    set_new_handler(get_memory);
    pa = new int[bsize];
    cerr << "free store addr = " << pa << endl;
    eat_memory(bsize);
    return 0;
}

A. free store addr

B. Error

C. Segmentation fault

D. free store exhausted

Answer: Option C


Join The Discussion

Related Questions on C plus plus miscellaneous

What is the difference between '++i' and 'i++' in C++?

A. None of the above

B. They both have the same effect

C. '++i' increments the value of 'i' before returning it, while 'i++' increments the value of 'i' after returning it

D. '++i' increments the value of 'i' after returning it, while 'i++' increments the value of 'i' before returning it