Q:以下代码输出结果是什么?数组
#include<stdio.h> 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()的结束,栈区内存释放,字符数组也就不存在了,因此会产生野指针,输出结果未知 函数