笔试题GetMemory

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

笔试题(GetMemory)

void GetMemory2(char **p, int num)

笔试题(GetMemory)

{

p = (char *)malloc(num);
}

void Test(void)

{

char *str = NULL;

GetMemory(&str, 100);

strcpy(str, "hello");

printf(str);

}

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

答:

(1)能够输出hello (2 )Test函数中也未对malloc的内存进行释放。(3)GetMemory避免了试题1的问题,传入GetMemory的.参数为字符串指针的指针,但是在GetMemory中执行申请内存及赋值语句

p = (char *) malloc( num );
后未判断内存是否申请成功,应加上: if ( *p == NULL ) {

    ...//进行申请内存失败处理
 }

 

void Test(void)

{

char *str = (char *) malloc(100);

     strcpy(str, “hello”);
     free(str);     
     if(str != NULL)
     {
       strcpy(str, “world”);
printf(str);

}

}

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

答:执行 char *str = (char *) malloc(100); 后未进行内存是否申请成功的判断;另外,在free(str)后未置str为空,导致可能变成一个“野”指针,应加上: str = NULL;
 

【笔试题(GetMemory)】相关文章:

360笔试题目10-20

华为2017笔试题08-16

华为2017笔试试题08-10

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

QMS2007笔试审核知识模拟试题11-02

眼线笔类型-如何挑选眼线笔11-09

马克笔有哪些分类-马克笔的分类11-03

ps笔刷怎么安装08-27

唇线笔怎么用10-11

美甲笔如何保养10-07