内存分配方式有3种:
1.静态存储区分配。static变量,全局变量。
2.栈分配。局部变量,形参等。
3.堆分配。动态分配,自己申请。
先来看一个例子:
1. `char* get_string()` 2. `{` 3. ` char* p = new char[10];` //堆内存 4. ` strcpy(p,"hello");` 5. ` return p;` 6. `}` 7. ` ` 8. `char* get_string()` 9. `{` 10. ` char* p = "hello";` //字符串常量存储在静态区 11. ` return p;` 12. `}` 13. ` ` 14. `char* get_string()` 15. `{` 16. ` char p[] = "hello";` //字符串数组,局部变量 17. ` return p;` 18. `}`
上述三个函数,1,2能成功返回,3错误。
[来自为知笔记(Wiz)](http://www.wiz.cn/i/c09d0bb5 "来自为知笔记(Wiz)")