title: How can I resolve a "called object is not a function or function pointer" error?
body: <p>I'm fairly new to C and am trying to make a dice game. I am trying to learn pointers and need some tips and advice about using call functions and pointers that are initialized in main. </p>
  
  <p>I am getting and error on my first roll call function to determine the first roller: </p>
  
  <blockquote>
    <p>called object 'first_roll_call' is not a function or function pointer</p>
  </blockquote>
  
  <p>What does that mean, and how can I fix it?</p>
  
  <p>Here's my code:</p>
  
  <pre><code>#include &lt;stdio.h&gt;
  #include &lt;stdlib.h&gt;
  #include &lt;time.h&gt;
  
  int main () {
      int dice;
      int roll, first_roll;
      int i;
      int first_roll_call;
  
      int *playerA;
      int *playerB;
      int *first_rollA;
      int *first_rollB;
  
      playerA = (int *)malloc(100);
      playerB = (int *)malloc(100);
      first_rollA = (int *)malloc(100);
      first_rollB = (int *)malloc(100);
  
      printf("Welcome to Dice Mania!\n\n");
      printf("First player to a combined score of 25 wins!\n");
      printf("We to see who goes first, press 1 to continue:");
      scanf("%d", &amp;first_roll);
  
      for (i = 1; i &lt; 2; i++){
          first_roll = rand() % 6 + 1;
          first_roll_call(first_roll, i, &amp;first_rollA, &amp;first_rollB);
      }
      if (*first_rollA &gt; *first_rollB){
          printf("Player 1 goes first!\n");
      }
      else {
          printf("Player 2 goes first!\n");
      }
  
      if (dice == 1) {
          while (dice == 1) {
              printf("Please press 1 to initiate the dice roll, 0 to exit\n\n");
              srand(time(NULL));
              roll = rand() % 6 + 1;
              printf("You have rolled a: \n\n");
              dice = dice_roll(roll);
              if (dice == 0) {
                  printf("\n\nThank you for playing");
                  break;
              }
          }
      }
  
      return 0;
  }
  
  int dice_roll(int x) {
      int dice;
  
      if (x == 1) {
          printf("*************\n");
          printf("*  -----    *\n");
          printf("*      |    *\n");
          printf("*      |    *\n");
          printf("*      |    *\n");
          printf("*      |    *\n");
          printf("*  -------  *\n");
          printf("*************\n");
  
          printf("Please press 1 to initiate the dice roll, 0 to exit\n\n");
          scanf("%d", &amp;dice);
          return(dice);
      }
      if (x == 2) {
          int dice;
  
          printf("*************\n");
          printf("*  _____    *\n");
          printf("*      |    *\n");
          printf("*  ____|    *\n");
          printf("*  |        *\n");
          printf("*  |____    *\n");
          printf("*           *\n");
          printf("*************\n");
  
          printf("Please press 1 to initiate the dice roll, 0 to exit\n\n");
          scanf("%d", &amp;dice);
          return(dice);
      }
      if (x == 3) {
          int dice;
  
          printf("*************\n");
          printf("*  -----    *\n");
          printf("*      |    *\n");
          printf("*   ___|    *\n");
          printf("*      |    *\n");
          printf("*      |    *\n");
          printf("*  -----    *\n");
          printf("*************\n");
  
          printf("Please press 1 to initiate the dice roll, 0 to exit\n\n");
          scanf("%d", &amp;dice);
          return(dice);
      }
      if (x == 4) {
          int dice;
  
          printf("*************\n");
          printf("*  |    |   *\n");
          printf("*  |    |   *\n");
          printf("*  |____|   *\n");
          printf("*       |   *\n");
          printf("*       |   *\n");
          printf("*       |   *\n");
          printf("*************\n*");
  
          printf("Please press 1 to initiate the dice roll, 0 to exit\n\n");
          scanf("%d", &amp;dice);
          return(dice);
      }
      if (x == 5) {
          int dice;
  
          printf("*************\n");
          printf("*  _____    *\n");
          printf("*  |        *\n");
          printf("*  |____    *\n");
          printf("*       |   *\n");
          printf("*  _____|   *\n");
          printf("*           *\n");
          printf("*************\n");
  
          printf("Please press 1 to initiate the dice roll, 0 to exit\n\n");
          scanf("%d", &amp;dice);
          return(dice);
      }
      if (x == 6) {
          int dice;
  
          printf("*************\n");
          printf("*  _____    *\n");
          printf("*  |        *\n");
          printf("*  |____    *\n");
          printf("*  |    |   *\n");
          printf("*  |____|   *\n");
          printf("*           *\n");
          printf("*************\n");
  
          printf("Please press 1 to initiate the dice roll, 0 to exit\n\n");
          scanf("%d", &amp;dice);
          return(dice);
      }
  
  int first_roll_call(int x, int y, int *first_rollA, int *first_rollB){
      int dice;
  
      if (x == 1) {
          printf("*************\n");
          printf("*  -----    *\n");
          printf("*      |    *\n");
          printf("*      |    *\n");
          printf("*      |    *\n");
          printf("*      |    *\n");
          printf("*  -------  *\n");
          printf("*************\n");
  
          if (y = 1){
              printf("Player one rolled a %d", x);
              x = *first_rollA;
  
          }
          if (y = 2) {
              printf("Player two rolled a %d", x);
              x = *first_rollB;
          }
      }
      if (x == 2) {
          int dice;
  
          printf("*************\n");
          printf("*  _____    *\n");
          printf("*      |    *\n");
          printf("*  ____|    *\n");
          printf("*  |        *\n");
          printf("*  |____    *\n");
          printf("*           *\n");
          printf("*************\n");
  
          if (y = 1) {
              printf("Player one rolled a %d", x);
              x = *first_rollA;
          }
          if (y = 2) {
              printf("Player two rolled a %d", x);
              x = *first_rollB;
          }
      }
  
      if (x == 3) {
          int dice;
  
          printf("*************\n");
          printf("*  -----    *\n");
          printf("*      |    *\n");
          printf("*   ___|    *\n");
          printf("*      |    *\n");
          printf("*      |    *\n");
          printf("*  -----    *\n");
          printf("*************\n");
  
          if (y = 1){
              printf("Player one rolled a %d", x);
              x = *first_rollA;
          }
          if (y = 2) {
              printf("Player two rolled a %d", x);
              x = *first_rollB;
          }
      }
  
      if (x == 4) {
          int dice;
  
          printf("*************\n");
          printf("*  |    |   *\n");
          printf("*  |    |   *\n");
          printf("*  |____|   *\n");
          printf("*       |   *\n");
          printf("*       |   *\n");
          printf("*       |   *\n");
          printf("*************\n*");
  
          if (y = 1) {
              printf("Player one rolled a %d", x);
              x = *first_rollA;
          }
          if (y = 2) {
              printf("Player two rolled a %d", x);
              x = *first_rollB;
          }
      }
      if (x == 5) {
          int dice;
  
          printf("*************\n");
          printf("*  _____    *\n");
          printf("*  |        *\n");
          printf("*  |____    *\n");
          printf("*       |   *\n");
          printf("*  _____|   *\n");
          printf("*           *\n");
          printf("*************\n");
  
          if (y = 1) {
              printf("Player one rolled a %d", x);
              x = *first_rollA;
          }
          if (y = 2) {
              printf("Player two rolled a %d", x);
              x = *first_rollB;
          }
      }
  
      if(x == 6) {
          int dice;
  
          printf("*************\n");
          printf("*  _____    *\n");
          printf("*  |        *\n");
          printf("*  |____    *\n");
          printf("*  |    |   *\n");
          printf("*  |____|   *\n");
          printf("*           *\n");
          printf("*************\n");
  
          if (y = 1) {
              printf("Player one rolled a %d", x);
              x = *first_rollA;
          }
          if (y = 2) {
              printf("Player two rolled a %d", x);
              x = *first_rollB;
          }
      }
  }
  
  }
  </code></pre>