c++函数内部可以返回函数内部定义的指针 但是不能返回函数内部定义的数组
1、返回数组
// demo.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include<stdio.h> char *myString() { char buffer[]="hello"; char *s = "Hello World!"; return buffer; } int main(int argc, char **argv) { printf("%s\n", myString()); return 0; }
运行结果:输出了未知的数据
随着函数运行的结束,栈区内存释放,字符数组也就不存在了,所以会产生野指针,输出结果未知
二、返回指针
// demo.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include<stdio.h> char *myString() { char buffer[]="hello"; char *s = "Hello World!"; return s; } int main(int argc, char **argv) { printf("%s\n", myString()); return 0; }
运行结果: