`
whusl
  • 浏览: 99496 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

笔试中常出现的C语言读程序题

 
阅读更多

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

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

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

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

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

程序6:考察宏定义!输出是什么?

【结果】

1、程序崩溃。因为GetMemory并不能传递动态内存,Test函数中的 str一直都是 NULL。strcpy(str, "hello world");将使程序崩溃因为GetMemory并不能传递动态内存,Test函数中的 str一直都是 NULL。strcpy(str, "hello world");将使程序崩溃。

2、可能是乱码。因为char p[] = "hello world";这句话,意思是把字符串复制到数组p中,而数组p是局部变量,在栈空间内,GetMemory返回的是指向“栈内存”的指针,该指针的地址不是 NULL,但其原现的内容已经被清除,新内容不可知。

3、能够输出hello,但是malloc后没有free,会导致内存泄漏

4、篡改动态内存区的内容,后果难以预料,非常危险。因为free(str);之后,str成为野指针,if(str != NULL)语句不起作用。

5数组越界

6、这种题型只需要把宏定义直接展开到程序中即可!结果为-2,5。for循环只执行了(X)--。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics