博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
野指针产生
阅读量:4680 次
发布时间:2019-06-09

本文共 518 字,大约阅读时间需要 1 分钟。

Q:如下代码输出结果是什么?

#include
char *myString(){ char buffer[6] = {0}; char *s = "Hello World!"; for (int i = 0; i < sizeof(buffer) - 1; i++) { buffer[i] = *(s + i); } return buffer;}int main(int argc, char **argv){ printf("%s\n", myString()); return 0;}
A、Hello    B、Hello World!    C、Well    D、以上全部不正确

A:函数char *myString()中没有使用new或者malloc分配内存,所有buffer数组的内存区域在栈区。随着char *myString()的结束,栈区内存释放,字符数组也就不存在了,所以会产生野指针,输出结果未知 

转载于:https://www.cnblogs.com/yedushusheng/p/5523956.html

你可能感兴趣的文章