展讯笔试题目
10-16 00:00:09
来源:http://www.qz26.com 笔试题目 阅读:8632次
导读:答:可能是乱码。因为GetMemory返回的是指向"栈内存"的指针,该指针的地址不是 NULL,但其原现的内容已经被清除,新内容不可知。说的简单一些,就是函数的局部变量释放了。3:void GetMemory2(char **p, int num){ *p = (char *)malloc(num);}void Test(void){ char *str = NULL; GetMemory(&str, 100); strcpy(str, "hello"); printf(str); }请问运行Test函数会有什么样的结果?答:(1)能够输出hello(2)内存泄漏说的简单一些,就是没有释放malloc的空间4:void Test(void){ char *str = (char *) malloc(100); strcpy(str, "hello"); free(str); if(str !
展讯笔试题目,标签:银行笔试题目,企业笔试题目,http://www.qz26.com
答:可能是乱码。
因为GetMemory返回的是指向"栈内存"的指针,该指针的地址不是 NULL,但其原现的内容已经被清除,新内容不可知。
说的简单一些,就是函数的局部变量释放了。
答:可能是乱码。
因为GetMemory返回的是指向"栈内存"的指针,该指针的地址不是 NULL,但其原现的内容已经被清除,新内容不可知。
说的简单一些,就是函数的局部变量释放了。
3:
void GetMemory2(char **p, int num)
{
*p = (char *)malloc(num);
}
void Test(void)
{
char *str = NULL;
GetMemory(&str, 100);
strcpy(str, "hello");
printf(str);
}
请问运行Test函数会有什么样的结果?
答:
(1)能够输出hello
(2)内存泄漏
说的简单一些,就是没有释放malloc的空间
4:
void Test(void)
{
char *str = (char *) malloc(100);
strcpy(str, "hello");
free(str);
if(str != NULL)
{
strcpy(str, "world");
printf(str);
}
}
请问运行Test函数会有什么样的结果?
答:篡改动态内存区的内容,后果难以预料,非常危险。
因为free(str);之后,str成为野指针,
if(str != NULL)语句不起作用。
说的简单一些,就是只收回内存,没有用str=NULL收回指针
Tag:笔试题目,银行笔试题目,企业笔试题目,求职笔试面试 - 笔试题目
下一条:中国农业银行总行笔试权威参考资料