#include<stdio.h>
#include<stdlib.h>
char *s_getany(int chunklen);

int main()
{
	char input[2];
	int chunklen;
	
	printf(" Give the length: ");
	fgets(input , 2 , stdin);
	chunklen= atoi(input);
	
	s_getany(chunklen);
	
exit(EXIT_SUCCESS);

}
char *s_getany( int chunklen )
{
   int i = 0;                 
   char *s = NULL, *try = NULL;


   if ( chunklen < 1 || NULL == (s = calloc( chunklen+1, sizeof(char)) ) )
      return NULL;  /* Αν το μήκος του string (chunklen) ειναι μικρότερο απο 1
                    ή ο δείκτης ειναι NULL επέστρεψε NULL */ 

   for (i=0; EOF != (s[i] = getchar()) && s[i] != '\n'; i++)  // Μέχρι να επιστραφεί EOF ή να δοθεί '\n' εκτέλεσε
   {
      if ( i != 0 && i % chunklen == 0 )   // Aπο i=1 θες αλλιώς δίνοντας 6 μήκος string μέχρι να φτάσει
                                         // στο τελευταίο στοιχείο το οποίο ειναι αυτο που έχει υπόλοιπο i με chunklen 0
                                         // δηλαδη 6/6 θα ήθελες 7 στοιχεία (απο i=0)   
      {
         try = realloc(s, (i+chunklen+1) * sizeof(char) ); /* Δέσμευε κάθε φορα την κατάσταση του i + 
                                                              το μέγεθος που έδωσε ο χρήστης + τον μηδενικό */
         if ( !try ) {           
            free(s);
            s = NULL;
            return NULL;
         }
         s = try; // Ο s δείχνει οπου και ο try            
      }
   }
   s[i] = '\0';  // Μanually τοποθέτηση του μηδενικού.

   if ( NULL == (try = realloc(s, (i+1) * sizeof(char) )) )
      return NULL;

   return try;
}