Memory C

#include 
#include 
int main(void)
{
  char *str[100];
  int i;
  for(i = 0; i < 100; i++) {
    if((str[i] = malloc( 128 )) == NULL) {
      printf("Allocation Error\n");
      exit(1);
    }
    gets(str[i]);
  }
  /* now free the memory */
    
  for(i = 0; i < 100; i++) 
      free(str[i]);
  return 0;
}