The malloc() function is used to create an input buffer.
This technique avoids declaring and sizing an empty array.
The notation
char input[64];
can be replaced by this statement:
char *input;
The size of the buffer is established inside the code by using the malloc() function.
#include <stdio.h> #include <stdlib.h> int main() // w w w.j a v a 2s. c om { char *input; input = (char *)malloc(sizeof(char)*1024); if(input==NULL) { puts("Unable to allocate buffer!"); exit(1); } puts("Type something long:"); fgets(input,1023,stdin); puts("You wrote:"); printf("\"%s\"\n",input); return(0); }
The fgets() function limits input to 1,023 bytes, leaving room left over for the \0 at the end of the string.