/* * ================================================================= * Test Dynamic Allocation of Memory for Character Strings * * Copyright (C) 1994-96 by Mark Austin and David Mazzoni. * * This software is provided "as is" without express or implied warranty. * Permission is granted to use this software on any computer system, * and to redistribute it freely, subject to the following restrictions: * * 1. The authors are not responsible for the consequences of use of * this software, even if they arise from defects in the software. * 2. The origin of this software must not be misrepresented, either * by explicit claim or by omission. * 3. Altered versions must be plainly marked as such, and must not * be misrepresented as being the original software. * 4. This notice is to remain intact. * * Written By : M. Austin January 1994 * ================================================================= */ #include #include int main( void ) { char *saveString( char * ); char *cpName; /* [a] : Allocate memory for test character string */ cpName = saveString("My test string"); /* [b] : Print test character string */ printf("TEST STRING : \"%s\"\n", cpName ); /* [c] : Free memory for test character string */ free( cpName ); } /* * ------------------------------------------------------------------- * Version 1 of saveString() : Dynamic Allocation of Character Strings * ------------------------------------------------------------------- */ char *saveString( char *cpName ) { char *cpTemp; cpTemp = (char *) malloc( (unsigned) (strlen( cpName ) + 1) ); if(cpTemp == NULL) { fprintf(stderr,"saveString(): malloc failed\n"); exit(1); } strcpy( cpTemp, cpName ); return cpTemp; }