ciao!!!

ho bisogno di aiuto per riuscire a fare un programma che prenda in inputuna stringa senza sapere prima la sua lunghezza!!!
io ho cercato di risolvere questo problema cosi :


#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>

int main()
{
char *array;
int grd = 10, grd_len;

array = (char *) malloc(10);


array = fgets(array, grd, stdin );

grd_len = strlen ( array);
printf("\n la grandezza della stringa %d", grd_len);

while( grd_len == grd -1) {

grd = grd+100;
realloc(array, grd);
array = fgets(array, grd, stdin );
grd_len = strlen(array) ;
printf("\n la grandezza della stringa %d", grd_len);

} ;



printf("\n la grandezza della stringa %d\n\n", grd_len);
puts(array);


system("PAUSE");

return 0;


}


ma non ho ottenuto grandi risultati!!!!