笔试题Test函数

时间:2020-10-15 14:27:35 笔试题目 我要投稿

笔试题(Test函数)

void GetMemory(char *p)

笔试题(Test函数)

{

p = (char *)malloc(100);

}

void Test(void)

{

char *str = NULL;

GetMemory(str);

strcpy(str, "hello world");

printf(str);

}

请问运行Test函数会有什么样的结果?

答:试题传入GetMemory( char *p )函数的形参为字符串指针,在函数内部修改形参并不能真正的改变传入形参的值,执行完 char *str = NULL; GetMemory( str ); 后的str仍然为NULL;

char *GetMemory(void)

{

char p[] = "hello world";

return p;

}

void Test(void)

{

char *str = NULL;

str = GetMemory();

printf(str);

}

请问运行Test函数会有什么样的结果?

答:可能是乱码。 char p[] = "hello world";

      return p; 
的p[]数组为函数内的'局部自动变量,在函数返回后,内存已经被释放。这是许多程序员常犯的错误,其根源在于不理解变量的生存期。
 

【笔试题(Test函数)】相关文章:

华为2017笔试题08-16

360笔试题目10-20

华为2017笔试试题08-10

日语J.TEST考试E-F练习试题11-06

2017年J.TEST考试练习试题「部分」11-06

桂林银行笔试题笔经10-21

2017年J.TEST考试E-F级练习试题11-06

日语J.TEST考试E-F级读解练习试题11-06

2017年日语J.TEST考试文法词汇练习试题11-06

J.TEST考试方法10-01