C语言存储区域

Posted 小师叔

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言存储区域相关的知识,希望对你有一定的参考价值。

有错误请指教

1.文字常量区域  存储在 代码段   不能被修改 

2.全局变量  静态存储区  存储在  数据段

3.函数中的局部变量 存储在  栈中  

4.malloc  new  中的变量存储在  堆中间

测试  函数  转载  http://blog.csdn.net/u010070526/article/details/41748043

  1. int a = 0; //全局初始化区  
  2. char *p1; //全局未初始化区  
  3. int main() {  
  4. int b; //栈  
  5. char s[] = "abc"; //栈  
  6. char *p2; //栈  
  7. char *p3 = "123456"; //123456在常量区,p3在栈上。  
  8. static int c =0;//全局(静态)初始化区  
  9. p1 = new char[10];  
  10. p2 = new char[20];  
  11. //分配得来得和字节的区域就在堆区。  
  12. strcpy(p1, "123456"); //123456放在常量区,编译器可能会将它与p3所指向的"123456"优化成一个地方。  
  13. }  

以上是关于C语言存储区域的主要内容,如果未能解决你的问题,请参考以下文章

C语言中static定义的变量 存储在OS内存的啥区域?

C语言中的动态内存分配的用法举例

RTree源代码——C语言实现

C语言中 内存消亡 指向她的指针就一定消亡或成了空指针为啥是错的啊

C语言:内存四区

c语言分配内存方式都有哪些