home *** CD-ROM | disk | FTP | other *** search
/ Sams Teach Yourself C in 21 Days (6th Edition) / STYC216E.ISO / mac / Examples / Day20 / realloc.c < prev    next >
C/C++ Source or Header  |  2002-08-11  |  802b  |  40 lines

  1. /* Using realloc() to change memory allocation. */
  2.  
  3. #include <stdio.h>
  4. #include <stdlib.h>
  5. #include <string.h>
  6.  
  7. int main( void )
  8. {
  9.     char buf[80], *message;
  10.  
  11.     /* Input a string. */
  12.  
  13.     puts("Enter a line of text.");
  14.     gets(buf);
  15.  
  16.     /* Allocate the initial block and copy the string to it. */
  17.  
  18.     message = realloc(NULL, strlen(buf)+1);
  19.     strcpy(message, buf);
  20.  
  21.     /* Display the message. */
  22.  
  23.     puts(message);
  24.  
  25.     /* Get another string from the user. */
  26.  
  27.     puts("Enter another line of text.");
  28.     gets(buf);
  29.  
  30.     /* Increase the allocation, then concatenate the string to it. */
  31.  
  32.     message = realloc(message,(strlen(message) + strlen(buf)+1));
  33.     strcat(message, buf);
  34.  
  35.     /* Display the new message. */
  36.     puts(message);
  37.     return 0;
  38. }
  39.  
  40.