健壮:
char *getmemory(void)
{
char *p=NULL;
if(NULL !=(p=(char *)malloc(strlen("hello word")+1))
return p;
}
试题6:
void GetMemory( char **p, int num )
{
*p = (char *) malloc( num );
}
void Test( void )
{
char *str = NULL;
GetMemory( &str, 100 );
strcpy( str, "hello" );
printf( str );
}
/*
这个题目在第四个题目已经实现和论述,不再论述
指的一提的是:
传递&str值,并不能改变str的指向。
*/
试题7:
void Test( void )
{
char *str = (char *) malloc( 100 );
strcpy( str, "hello" );
free( str );
... //省略的其它语句
}
/*
这个题目比上面的更加简单, 它的问题就是没有对malloc函数的返回情况进行
检测,
如果 NULL=(char *)malloc(NUM) 那么strcpy函数将不会成功执行,
*/
鉴于本人是个计算机菜鸟, 目前连基本的兼容dos命令都不会, 同时还是个C语言的菜鸟
上面的类容说的不当的地方,欢迎各位弯腰找板砖......................
嘻嘻..............................