3月1号 栈和堆的增长方向

看到了这张图

网上有一种解释是栈的递减是对函数说的。

于是我用相同的代码在 Linux 和 Windows 上跑了下

#include <iostream>
using namespace std;

void f1()
{
    printf("f1\n");
}

void f2()
{
    printf("f2\n");
}

int main()
{
    auto it1 = f1;
    auto it2 = f2;

    printf("%p %p\n", it1, it2);

    int* p1 = new int;
    int* p2 = new int;
    printf("%p %p\n", p1, p2);

    return 0;
}

Windows 上的结果是这样的

00007FF63D4A1181 00007FF63D4A11FE
000001C1C6615F50 000001C1C6615820

Linux上的结果是这样的

0x563045b0c81a 0x563045b0c82d
0x563047acf280 0x563047acf2a0

可以发现栈在Windows上增,在Linux上增;堆在Win上减,在Linux上增

所以虚拟地址怎么呈现给用户是编译器的事情

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇