C语言学习趣事_经典面试题系列_3 (二)

2014-11-23 22:30:31 · 作者: · 浏览: 18
健壮:
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语言的菜鸟

上面的类容说的不当的地方,欢迎各位弯腰找板砖......................

嘻嘻..............................