7

问答题 7 /290

下面代码会出现什么问题?
void Test( void ) 
{ 
 char *str = (char *) malloc( 100 ); 
 strcpy( str, "hello" ); 
 free( str );  
 ... //省略的其它语句 
} 

参考答案

在执行  
char *str = (char *) malloc(100);  
后未进行内存是否申请成功的判断;另外,在free(str)后未置str为空,导致可能变成一个“野”指针,应加上:  
str = NULL;  
试题6的Test函数中也未对malloc的内存进行释放。