C Programming - Memory Allocation

1. 

What will be the output of the program?

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

int main()
{
    int *p;
    p = (int *)malloc(20); /* Assume p has address of 1314 */
    free(p);
    printf("%u", p);
    return 0;
}

A. 1314
B. Garbage value
C. 1316
D. Random address

Answer: Option A

Explanation:

No answer description available for this question. Let us discuss.

2. 

What will be the output of the program (16-bit platform)?

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

int main()
{
    int *p;
    p = (int *)malloc(20);
    printf("%d\n", sizeof(p));
    free(p);
    return 0;
}

A. 4
B. 2
C. 8
D. Garbage value

Answer: Option B

Explanation:

No answer description available for this question. Let us discuss.

3. 

What will be the output of the program?

#include<stdio.h>
#include<string.h>

int main()
{
    char *s;
    char *fun();
    s = fun();
    printf("%s\n", s);
    return 0;
}
char *fun()
{
    char buffer[30];
    strcpy(buffer, "RAM");
    return (buffer);
}

A. 0xffff
B. Garbage value
C. 0xffee
D. Error

Answer: Option B

Explanation:

The output is unpredictable since buffer is an auto array and will die when the control go back to main. Thus s will be pointing to an array , which not exists.

4. 

What will be the output of the program?

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

int main()
{
    union test
    {
        int i;
        float f;
        char c;
    };
    union test *t;
    t = (union test *)malloc(sizeof(union test));
    t->f = 10.10f;
    printf("%f", t->f);
    return 0;
}

A. 10
B. Garbage value
C. 10.100000
D. Error

Answer: Option C

Explanation:

No answer description available for this question. Let us discuss.

5. 

Assume integer is 2 bytes wide. How many bytes will be allocated for the following code?

#include<stdio.h>
#include<stdlib.h>
#define MAXROW 3
#define MAXCOL 4

int main()
{
    int (*p)[MAXCOL];
    p = (int (*) [MAXCOL])malloc(MAXROW *sizeof(*p));
    return 0;
}

A. 56 bytes
B. 128 bytes
C. 24 bytes
D. 12 bytes

Answer: Option C

Explanation:

No answer description available for this question. Let us discuss.