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.
|
Go4Expert Founder
|
![]() |
| 28Sep2005,14:45 | #2 |
|
Quote:
Originally Posted by SATYAN JANA Code:
void AllocateMem(int *p)
{
p = (int*)malloc(sizeof(int));
*p = 6;
return;
}
void main()
{
int *a;
AllocateMem(&a);
printf("[%d]",*a);
}
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);
}
|
|
Team Leader
|
![]() |
| 29Sep2005,23:16 | #3 |
|
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;
}
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. |
|
Team Leader
|
|
| 29Sep2005,23:22 | #4 |
|
Some multiple choice questions in C/C++ thread will add to the current questions.
|


