C Programming MCQ - Memory Allocation

11. What is the output of this program?

#include <stdio.h>
#include <stdlib.h>
int main()
{
int i, numbers[1];
numbers[0] = 15;
free(numbers);
printf("\nStored integers are ");
printf("\nnumbers[%d] = %d ", 0, numbers[0]);
return 0;
}

A. 15
B. 0
C. Compilation error
D. garbage value

View Answer


12. What is the output of this program?

#include <stdio.h>
#include <stdlib.h>
int main()
{
int *j = (int*)malloc(4 * sizeof(int));
*j = 15;
free(j);
printf("%d", *j);
return 0;
}

A. Compilation error
B. 0
C. Some Garbage value
D. Nothing prints

View Answer


13. What is the output of this program?

#include <stdio.h>
#include <stdlib.h>
int main()
{
int *numbers = (int*)calloc(4, sizeof(int));
numbers[0] = 2;
free(numbers);
printf("\nStored integers are ");
printf("\nnumbers[%d] = %d ", 0, numbers[0]);
return 0;
}

A. Garbage value
B. 0
C. 2
D. Compilation error

View Answer


14. What is the output of this program?

#include <stdio.h>
void main()
{
int *ptr = (int *)malloc(sizeof(int));
*ptr = 10;
free(ptr);
p = 5;
printf("%d", ptr);
}

A. Compilation error
B. 0
C. 5
D. Garbage value

View Answer


15. What is the output of this program?

#include<stdio.h>
#include <stdlib.h>
int main()
{
int i;
char *ptr;
char *fun();
ptr = fun();
printf(" %s", ptr);
return 0;
}
char *fun()
{
char disk[30];
strcpy(disk, "letsfindcourse");
printf("%s ",disk);
return disk;
}

A. letsfindcourse
B. letsfindcourse letsfindcourse
C. Compilation error
D. garbage value

View Answer


16. What is the output of this program?

#include<stdio.h>
#include<stdlib.h>
int main()
{
int *p;
p = (int *)malloc(40);
printf("%d\n", sizeof(p));
free(p);
return 0;
}

A. 40
B. 30
C. 4
D. 20

View Answer


17. What is the output of this program?

#include <stdio.h>
#include<stdlib.h>
int main()
{
struct test
{
int i;
float f;
char c;
};
struct test *ptr;
ptr = (struct test *)malloc(sizeof(struct test));
ptr ->f = 2.5f;
printf("%f", ptr->f);
return 0;
}

A. Compilation error
B. Garbage value
C. 2.500000
D. 0.000000

View Answer


18. Which statment is true about the given code ?

#include <stdio.h>
#include <stdlib.h>
int main()
{
int *a[5]; a = (int*) malloc(sizeof(int)*5); free(a);
return 0;
}

A. Error: unable to allocate memory
B. Error: We cannot store address of allocated memory in a
C. Error: unable to free memory
D. No error

View Answer


19. What is the Error of this program?

#include <stdio.h>
#include <stdlib.h>
int main()
{
char *ptr;
*ptr = (char)malloc(30);
strcpy(ptr, "RAM");
printf("%s", ptr);
free(ptr);
return 0;
}

A. Error: in strcpy() statement.
B. Error: in *ptr = (char)malloc(30);
C. Error: in free(ptr);
D. No error

View Answer


20. How will you free the memory allocated by the following program?
#include<stdio.h>
#include<stdlib.h>
#define MAXROW 2
#define MAXCOL 3
int main()
{ int **p, i, j;
p = (int **) malloc(MAXROW * sizeof(int*));
return 0;
}

A. memfree(int p);
B. dealloc(p);
C. malloc(p, 0);
D. free(p);

View Answer


21. Consider the following program, where are i, j and k are stored in memory?

#include <stdio.h>
#include <stdlib.h>
int i;
int main()
{
int j;
int *k = (int *) malloc (sizeof(int));
}

A. i, j and *k are stored in stack segment
B. i and j are stored in stack segment. *k is stored on heap.
C. i is stored in BSS part of data segment, j is stored in stack segment. *k is stored on heap.
D. j is stored in BSS part of data segment, i is stored in stack segment. *k is stored on heap.

View Answer







Also check :


Discussion


* You must be logged in to add comment.