5. What is the output of this program?

#include<stdio.h>

int main()
{
int *ptr;
ptr = (int *)calloc(1,sizeof(int));
*ptr = 10;
printf("%dn",*ptr);
return 0;
}
a) 0
b) -1
c) 10
d) none of the mentioned

d) none of the mentioned
Explanation:
This program will give an error because calloc() requires the header file stdlib.h.
Output:
[root@localhost google]# gcc -o san san.c
san.c: In function 'main':
san.c:6:15: warning: incompatible implicit declaration of built-in function 'calloc' [enabled by default]
[root@localhost google]#

6. Do you have any idea what is the output of this program?

#include<stdio.h>
#include<stdlib.h>

int main()
{
int *ptr;
*ptr = 10;
*ptr = 20;
printf("%dn",*ptr);
return 0;
}
a) 10
b) 20
c) segmentation fault
d) none of the mentioned

c) segmentation fault
Explanation:
The segmentation fault occurs because memory for the pointer has not been allocated in this program.
Output:
[root@localhost google]# gcc -o san san.c
[root@localhost google]# ./san
Segmentation fault (core dumped)
[root@localhost google]#

7. What is the output of this program?

#include<stdio.h>
#include<stdlib.h>

int main()
{
int *ptr1, *ptr2;
ptr1 = malloc(4);
*ptr1 = 10;
*ptr2 = free(ptr1);
printf("%dn",*ptr2);
return 0;
}
a) 10
b) it will print the address stored in ptr1
c) it will print the address stored in ptr2
d) it will give an error

d) it will give an error
Explanation:
The free() function returns no value.
Output:
[root@localhost google]# gcc -o san san.c
san.c: In function 'main':
san.c:8:8: error: void value not ignored as it ought to be
[root@localhost google]#

8. What is the output of this program?

#include<stdio.h>
#include<stdlib.h>

int main()
{
int *ptr1;
while(1){
ptr1 = malloc(1024*1024);
if(ptr1 == 0)
break;
sleep(1);
printf("googlen");
free(ptr1);
}
return 0;
}
a) it will print "google" until the process has been stopeed by any signal
b) it will print nothing
c) segmentation fault
d) none of the mentioned

a) it will print "google" until the process has been stopeed by any signal
Explanation:
None.
Output:
[root@localhost google]# gcc -o san san.c
[root@localhost google]# ./san
google
google
google
google
google
^Z
[10]+ Stopped ./san
[root@localhost google]#

9. What is the output of this program?

#include<stdio.h>
#include<stdlib.h>

int main()
{
int ret;
int *ptr;
ptr = (int *)malloc(sizeof(int)*10);
free(ptr);
free(ptr);
return 0;
}
a) it will print nothing
b) it will give segmentaion fault
c) undefined behaviour
d) none of the mentioned

c) undefined behaviour
Explanation:
If the free() has already called before, undefined behaviour occurs.
Output:
[root@localhost google]# gcc -o san san.c
[root@localhost google]# ./san
*** glibc detected *** ./san: double free or corruption (fasttop): 0x08f1b008 ***
======= Backtrace: =========
/lib/libc.so.6[0x4a6489f2]
./san[0x8048425]
/lib/libc.so.6(__libc_start_main+0xf3)[0x4a5e96b3]
./san[0x8048361]
======= Memory map: ========
08048000-08049000 r-xp 00000000 fd:01 394194 /home/google/san
08049000-0804a000 rw-p 00000000 fd:01 394194 /home/google/san
08f1b000-08f3c000 rw-p 00000000 00:00 0 [heap]
4a5ab000-4a5cc000 r-xp 00000000 fd:01 785334 /lib/ld-2.14.90.so
4a5cc000-4a5cd000 r-p 00020000 fd:01 785334 /lib/ld-2.14.90.so
4a5cd000-4a5ce000 rw-p 00021000 fd:01 785334 /lib/ld-2.14.90.so
4a5d0000-4a77a000 r-xp 00000000 fd:01 789110 /lib/libc-2.14.90.so
4a77a000-4a77b000 -p 001aa000 fd:01 789110 /lib/libc-2.14.90.so
4a77b000-4a77d000 r-p 001aa000 fd:01 789110 /lib/libc-2.14.90.so
4a77d000-4a77e000 rw-p 001ac000 fd:01 789110 /lib/libc-2.14.90.so
4a77e000-4a781000 rw-p 00000000 00:00 0
4a7e0000-4a7fc000 r-xp 00000000 fd:01 789128 /lib/libgcc_s-4.6.2-20111027.so.1
4a7fc000-4a7fd000 rw-p 0001b000 fd:01 789128 /lib/libgcc_s-4.6.2-20111027.so.1
b76f4000-b76f5000 rw-p 00000000 00:00 0
b770d000-b770f000 rw-p 00000000 00:00 0
b770f000-b7710000 r-xp 00000000 00:00 0 [vdso]
bfc0a000-bfc2b000 rw-p 00000000 00:00 0 [stack]
Aborted (core dumped)
[root@localhost google]#