title: Difference between char array[100] and char *array when calling functions?
body: <p>i'd like to know why this code works fine with <code>char tab[100]</code> but doesn't work if I use <code>char *tab</code> ? fgets function takes a <code>char*</code> array as a parameter right ? </p>
  
  <pre><code> #include &lt;stdio.h&gt;
   #include &lt;stdlib.h&gt;
   #include &lt;string.h&gt;
  
   Int Palindrome(char* str, int i, int j);
  
   int main()
  {
      char tab[100];
      printf("Enter your string : \n");
      fgets(tab, 100, stdin); 
      int j = strlen(tab);
      printf("%d\n", Palindrome(tab, 0, j - 2));
      return 0;
  }
  
  int Palindrome(char* str, int i, int j)
  {
      if (i &gt;= j)
      {
          printf("My word is a Palindrome !\n");
          return printf("&lt;(^w^)&gt;\n");
      }
      else if (str[i] != str[j])
      {
          printf("My word is not a Palindrome !\n");
          return printf("&lt;(X.X)&gt;\n");
      }
      else 
      {
          return Palindrome(str, i + 1, j - 1);
      }
  }
  </code></pre>