Go4Expert

Go4Expert (http://www.go4expert.com/)
-   C++ (http://www.go4expert.com/forums/cpp/)
-   -   Interview question. (http://www.go4expert.com/forums/interview-question-t447/)

SATYAN JANA 28Sep2005 12:07

Interview question.
 
A good question usually asked at interviews,-

/**************************/
int * func(int, int);
void main()
{
int *ptr = func(2,3);
printf("\nHello World!\n");
printf("\n%d\n",*ptr);
}
int * func(int i, int j)
{
int k = i + j;
return &k;
}
/**************************/
What will be the output of the above program?
Scroll down for answer.
































Here is the output,-
Hello World!
Garbage Value

Note that Garbage Value will be printed here instead of 5. This is because once the control returns from func() to the main(), the address of local variable 'k' is free. So the contents of this address can be modified by anybody else.

shabbir 28Sep2005 14:45

Re: Interview question.
 
Quote:

Originally Posted by SATYAN JANA
A good question usually asked at interviews

I will add one more here
Code:

void AllocateMem(int *p)
{
  p = (int*)malloc(sizeof(int));
  *p = 6;
  return;
}

void main()
{
  int *a;
  AllocateMem(&a);
  printf("[%d]",*a);
}

Gives an exception. I want the function to allocate the memory and want that to use in main. How?
Scroll down for an answer




















Code:

void AllocateMemory(int **p)
{
  *p = (int*)malloc(sizeof(int));
  **p = 6;
  return;
}

void main()
{
  int *a;
  AllocateMemory(&a);
  printf("[%d]",*a);
}


coderzone 29Sep2005 23:16

Re: Interview question.
 
I will add one
Code:

class A
{
private:
  int a;
public:
  void func(void);
};

class B
{
private:
  int a;
public:
  virtual void func(void);
};

int main()
{
  A a;
  B b;
  cout<<sizeof(a)<<"  "<<sizeof(b)<<endl;
}

What will be the output of the above program and why?
Scroll down for an answer




























2 4 because there is a Pointer to the virtual table to resolve the dynamic binding of the virtual function.

go4expert 29Sep2005 23:22

Re: Interview question.
 
Some multiple choice questions in C/C++ thread will add to the current questions.


All times are GMT +5.5. The time now is 06:35.