Exercise: Memory Allocation

Questions for: Memory Allocation

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: C
No answer description is available. Let's discuss.
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: C
No answer description is available. Let's discuss.
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: B
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.
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: B
No answer description is available. Let's discuss.
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: A
No answer description is available. Let's discuss.
Ad Slot (Above Pagination)
Quiz