c/c++的内存四区
生活随笔
收集整理的這篇文章主要介紹了
c/c++的内存四区
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
內存四區的圖示
內存四區的代碼案例
#include <stdio.h>
void fun() {static int k = 10; //初始化的靜態局部變量(data區的rw段)static int kk; //未初始化靜態局部變量(data區的bss段) 默認初始化為0printf("data: static= %p(rw),%p(bss)\n", &k, &kk);
}
int g_int1, g_int2; //未初始化全局變量(data區bss段)
int g_int3 = 10; //初始化的全局變量(data區rw段)
char *g_pstr1 = "abc"; //g_pstr1 初始化的全局變量(data區rw段)//"abc" 字符串常量(data區常量區)
int main() {printf("data: global= %p(bss),%p(bss)\n", &g_int1, &g_int2);printf("data: global= %p(rw)\n", &g_int3);printf("data: global= %p(rw)\n", &g_pstr1);printf("data:p_str1指向的地址:%p(常量段)\n", g_pstr1);printf("data: abc: %p(常量段)\n", &"abc");printf("code: fun= %p(code)\n", fun);fun();int i = 10, j = 20; //棧區printf("棧區: %p(棧區),%p(棧區)\n", &i, &j);int *pi = new int(10); //pi在棧區,pi指向的內容(*pi)在堆區printf("堆區: pi %p(堆區)\n", pi);delete pi;return 0;
}
總結
以上是生活随笔為你收集整理的c/c++的内存四区的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: c++中的auto关键字
- 下一篇: c++动态分配二维数组