return 语句不可返回指向“栈内存”的“指针”或者“引用”,因为该内存在函数体结束时被自动销毁。 也就是说你的代码中定义的char*在return结束时会被销毁,但在其被重写之前其内容仍然是正确的,此时你可以正常访问这段内存,但这个内存是不被保护的,在下一刻很可能被修改而指向未知数据。 所以,你不要这样写。
// 此字符串定義通常建議放在外部 char str[] = "hello worle"; char *strA() { return str; }
// 多此一舉的函式定義 char *strA() { static char str[] = "hello worle"; return str; }
13,824
社区成员
102,679
社区内容
加载中
试试用AI创作助手写篇文章吧