从一个例子来三种内存分配方式

内存分配方式有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)")
坚持原创技术分享,您的支持将鼓励我继续创作!