logo

CuriousTab

CuriousTab

Discussion


Home C Programming Memory Allocation See What Others Are Saying!
  • Question
  • How many bytes of memory will the following code reserve?
    #include<stdio.h>
    #include<stdlib.h>
    
    int main()
    {
        int *p;
        p = (int *)malloc(256 * 256);
        if(p == NULL)
            printf("Allocation failed");
        return 0;
    }
    


  • Options
  • A. 65536
  • B. Allocation failed
  • C. Error
  • D. No output

  • Correct Answer
  • Allocation failed 

    Explanation
    Hence 256*256 = 65536 is passed to malloc() function which can allocate upto 65535. So the memory allocation will be failed in 16 bit platform (Turbo C in DOS).

    If you compile the same program in 32 bit platform like Linux (GCC Compiler) it may allocate the required memory.


    More questions

    • 1. What will be the output of the program?
      #include<stdio.h>
      #include<math.h>
      
      int main()
      {
          float i = 2.5;
          printf("%f, %d", floor(i), ceil(i));
          return 0;
      }
      

    • Options
    • A. 2, 3
    • B. 2.000000, 3
    • C. 2.000000, 0
    • D. 2, 0
    • Discuss
    • 2. What will function gcvt() do?

    • Options
    • A. Convert vector to integer value
    • B. Convert floating-point number to a string
    • C. Convert 2D array in to 1D array.
    • D. Covert multi Dimensional array to 1D array
    • Discuss
    • 3. What will be the output of the program?
      #include<stdio.h>
      
      int main()
      {
          int i;
          char c;
          for(i=1; i<=5; i++)
          {
              scanf("%c", &c); /* given input is 'b' */
              ungetc(c, stdout);
              printf("%c", c);
              ungetc(c, stdin);
          }
          return 0;
      }
      

    • Options
    • A. bbbb
    • B. bbbbb
    • C. b
    • D. Error in ungetc statement.
    • Discuss
    • 4. What will be the output of the program?
      #include<stdio.h>
      
      int fun(int i)
      {
          i++;
          return i;
      }
      
      int main()
      {
          int fun(int);
          int i=3;
          fun(i=fun(fun(i)));
          printf("%d\n", i);
          return 0;
      }
      

    • Options
    • A. 5
    • B. 4
    • C. Error
    • D. Garbage value
    • Discuss
    • 5. What would be the equivalent pointer expression for referring the array element a[i][j][k][l]

    • Options
    • A. ((((a+i)+j)+k)+l)
    • B. *(*(*(*(a+i)+j)+k)+l)
    • C. (((a+i)+j)+k+l)
    • D. ((a+i)+j+k+l)
    • Discuss
    • 6. What will be the output of the program, if a short int is 2 bytes wide?
      #include<stdio.h>
      int main()
      {
          short int i = 0;
          for(i<=5 && i>=-1; ++i; i>0)
              printf("%u,", i);
          return 0;
      }
      

    • Options
    • A. 1 ... 65535
    • B. Expression syntax error
    • C. No output
    • D. 0, 1, 2, 3, 4, 5
    • Discuss
    • 7. Assume integer is 2 bytes wide. What will be the output of 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));
          printf("%d, %d\n", sizeof(p), sizeof(*p));
          return 0;
      }
      

    • Options
    • A. 2, 8
    • B. 4, 16
    • C. 8, 24
    • D. 16, 32
    • Discuss
    • 8. How would you round off a value from 1.66 to 2.0?

    • Options
    • A. ceil(1.66)
    • B. floor(1.66)
    • C. roundup(1.66)
    • D. roundto(1.66)
    • Discuss
    • 9. What will be the output of the program?
      #include<stdio.h>
      int fun(int);
      int main()
      {
          float k=3;
          fun(k=fun(fun(k)));
          printf("%f\n", k);
          return 0;
      }
      int fun(int i)
      {
          i++;
          return i;
      }
      

    • Options
    • A. 5.000000
    • B. 3.000000
    • C. Garbage value
    • D. 4.000000
    • Discuss
    • 10. What will be the output of the program?
      #include<stdio.h>
      int main()
      {
          int i=3;
          switch(i)
          {
              case 1:
                  printf("Hello\n");
              case 2:
                  printf("Hi\n");
              case 3:
                  continue;
              default:
                  printf("Bye\n");
          }
          return 0;
      }
      

    • Options
    • A. Error: Misplaced continue
    • B. Bye
    • C. No output
    • D. Hello Hi
    • Discuss


    Comments

    There are no comments.

Enter a new Comment