易截截图软件、单文件、免安装、纯绿色、仅160KB

c/c++中内存区域划分大总结

一. 在c中分为这几个存储区
1.栈 - 由编译器自动分配释放
2.堆 - 一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收
3.全局区(静态区),全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域,未初始化的全局变量和未初始化的静态变量在相邻的另一块区域。- 程序结束释放
4.另外还有一个专门放常量的地方。- 程序结束释放
                                                                                                                                             
在函数体中定义的变量通常是在栈上,用malloc, calloc, realloc等分配内存的函数分配得到的就是在堆上。在所有函数体外定义的是全局量,加了static修饰符后不管在哪里都存放在全局区(静态区),在所有函数体外定义的static变量表示在该文件中有效,不能extern到别的文件用,在函数体内定义的static表示只在该函数体内有效。另外,函数中的"adgfdf"这样的字符串存放在常量区。比如:
int a = 0; //全局初始化区
char *p1; //全局未初始化区
void main()
{
    int b; //栈
    char s[] = "abc"; //栈
    char *p2; //栈
    char *p3 = "123456"; //123456{post.content}在常量区,p3在栈上
    static int c = 0; //全局(静态)初始化区
    p1 = (char *)malloc(10); //分配得来得10字节的区域在堆区
    p2 = (char *)malloc(20); //分配得


相关文档:

【C/C++相关知识】ATOM优化之GCC篇

作者: Yanqing Wang (Intel)
在ATOM程序优化利器中,笔者着重讲述了如何使用Intel Compiler对ATOM应用程序的优化,很多网友都比较感兴趣并想知道在GCC编译器下如何优化ATOM。借此,本文将重点于讨论如何使ATOM应用程序在GCC编译器下优化。
细心的网友可能发现GCC4.4.2手册没有讲述如何在ATOM平台优化,所以要通过GCC对AT ......

[C]C语言基础巩固专题 const

const 是在程序中非常重要。在这里我做一下简单的介绍。
1.const 基础
  const有两种形式:
  a) const Type var;
     如:int a =10;const int * var=&a; 那么var就是常量指针,表明是指向常量的指针,也就是说a的值不能改变。
        ......

[C]C语言基础巩固专题 链表之(链表反转)

 链表是c语言中很重要的数据结构,是考察一个程序员的基本功的手段,之前在一家公司面试时就问到了
实现一个链表的反转,当时就是没有很好冷静的思考,今天在这里写出来,共勉!
 基本算法:
       1. 判断是否为空,如果为空,返回NULL
       ......

Linux C notes (BOOK UNIX)

Chapter 1: Thread
① thread functions
1. pthread_self();
2. thread existing
    you can get the value of rval_ptr just by  pthread_join(pthread_t tht, void ** rval_ptr)
    cancel a thread as the thread exits with PTHREAD_CANCELED in pthread_exit, this functio ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号