• +91 9723535972
  • info@interviewmaterial.com

CPlusPlus Interview Questions and Answers

Question - Will the following program execute? void main() { void *vptr = (void *) malloc(sizeof(void)); vptr++; }

Answer - 1. It will throw an error, as arithmetic operations cannot be performed on void pointers. 2. It will not build as sizeof cannot be applied to void* ( error “Unknown size” ) 3. How can it execute if it won’t even compile? It needs to be int main, not void main. Also, cannot increment a void *. 4. According to gcc compiler it won’t show any error, simply it executes. but in general we can’t do arthematic operation on void, and gives size of void as 1 5. The program compiles in GNU C while giving a warning for “void main”. The program runs without a crash. sizeof(void) is “1? hence when vptr++, the address is incremented by 1. 6. Regarding arguments about GCC, be aware that this is a C++ question, not C. So gcc will compile and execute, g++ cannot. g++ complains that the return type cannot be void and the argument of sizeof() cannot be void. It also reports that ISO C++ forbids incrementing a pointer of type ‘void*’. 7. in C++ voidp.c: In function `int main()’: voidp.c:4: error: invalid application of `sizeof’ to a void type voidp.c:4: error: `malloc’ undeclared (first use this function) voidp.c:4: error: (Each undeclared identifier is reported only once for each function it appears in.) voidp.c:6: error: ISO C++ forbids incrementing a pointer of type `void*’ But in c, it work without problems

Comment(S)

Show all Coment

Leave a Comment




NCERT Solutions

 

Share your email for latest updates

Name:
Email:

Our partners