C Programming - Memory Allocation

1. 

Point out the correct statement will let you access the elements of the array using 'p' in the following program?

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

int main()
{
    int i, j;
    int(*p)[3];
    p = (int(*)[3])malloc(3*sizeof(*p));
    return 0;
}

A.
for(i=0; i<3; i++)
{
    for(j=0; j<3; j++)
        printf("%d", p[i+j]);
}
B.
for(i=0; i<3; i++)
    printf("%d", p[i]);
C.
for(i=0; i<3; i++)
{
    for(j=0; j<3; j++)
        printf("%d", p[i][j]);
}
D.
for(j=0; j<3; j++)
    printf("%d", p[i][j]);

Answer: Option C

Explanation:

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

2. 

Which of the following statement is correct prototype of the malloc() function in c ?

A. int* malloc(int);
B. char* malloc(char);
C. unsigned int* malloc(unsigned int);
D. void* malloc(size_t);

Answer: Option D

Explanation:

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

3. 

Point out the correct statement which correctly free the memory pointed to by 's' and 'p' in the following program?

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

int main()
{
    struct ex
    {
        int i;
        float j;
        char *s
    };
    struct ex *p;
    p = (struct ex *)malloc(sizeof(struct ex));
    p->s = (char*)malloc(20);
    return 0;
}

A. free(p); , free(p->s);
B. free(p->s); , free(p);
C. free(p->s);
D. free(p);

Answer: Option B

Explanation:

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

4. 

Point out the correct statement which correctly allocates memory dynamically for 2D array following program?

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

int main()
{
    int *p, i, j;
    /* Add statement here */
    for(i=0; i<3; i++)
    {
        for(j=0; j<4; j++)
        {
            p[i*4+j] = i;
            printf("%d", p[i*4+j]);
        }
    }
    return 0;
}

A. p = (int*) malloc(3, 4);
B. p = (int*) malloc(3*sizeof(int));
C. p = malloc(3*4*sizeof(int));
D. p = (int*) malloc(3*4*sizeof(int));

Answer: Option D

Explanation:

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