課程
/后端開(kāi)發(fā)
/C
/Linux C語(yǔ)言指針與內(nèi)存
如我截圖所示
2017-06-20
源自:Linux C語(yǔ)言指針與內(nèi)存 4-3
正在回答
正常情況下 地址的分配簡(jiǎn)單的理解為 按 源代碼? 從上往下? 沒(méi)有問(wèn)題?
一般情況下 是這樣 。 這里可能 編譯器 如果優(yōu)化 或許 會(huì)不一樣? 但是暫時(shí) 不考慮這個(gè)情況?
但是 在你的代碼里? 這些 變量 是分配到 系統(tǒng)的棧內(nèi)存 的? 棧內(nèi)存? 跟操作系統(tǒng)內(nèi)核 一樣在高位
就是? 假設(shè)你是32位系統(tǒng) 系統(tǒng)內(nèi)存 占用2g 內(nèi)存?
那么? 你的地址? ?大概分配情況就行?
0x? FF FF FF FF? 這個(gè)是內(nèi)存的 首地址?
然后 往下一直是內(nèi)核地址?
直接到? 2g內(nèi)存結(jié)束 大概 位置為 1000 0000 0000 0000 0000?0000 0000 0000???就是 0x 80 00 00 00?
然后棧內(nèi)存的首地址??位置為 0111 1111 1111 1111 1111 1111 1111 1111 就是 0x 7F??FF FF FF
從上 往下依次越來(lái)越小?
所以你看到的確實(shí)是? 內(nèi)存地址的值 變小了? 你測(cè)試的是對(duì)的
但是你沒(méi)有注意 課程里說(shuō)的 從高地址開(kāi)始分配
同問(wèn)。a地址應(yīng)該比b大才對(duì)吧
從上往下分配
地址的分配并不是一定按命名順序的
舉報(bào)
指針-C語(yǔ)言的核心,代領(lǐng)大家對(duì)c語(yǔ)言有更加深刻的理解
2 回答為什么第一個(gè)p a p b是輸出的值第二次輸出它的地址呢?
1 回答地址不是動(dòng)態(tài)的嗎? 應(yīng)該是再編譯的過(guò)程中地址更換了 我的 p三次++ 后就不是a數(shù)組的數(shù)了
2 回答p *pa是訪問(wèn)地址所指的內(nèi)容,那int *pa=&a;這不是地址嗎,怎么*pa又是地址又是所指的內(nèi)容?怎么回事?
1 回答為啥地址中是a i b這種格式啊。
2 回答gdb地址表示的問(wèn)題(應(yīng)該是)
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號(hào)-11 京公網(wǎng)安備11010802030151號(hào)
購(gòu)課補(bǔ)貼聯(lián)系客服咨詢優(yōu)惠詳情
慕課網(wǎng)APP您的移動(dòng)學(xué)習(xí)伙伴
掃描二維碼關(guān)注慕課網(wǎng)微信公眾號(hào)
2020-11-24
正常情況下 地址的分配簡(jiǎn)單的理解為 按 源代碼? 從上往下? 沒(méi)有問(wèn)題?
一般情況下 是這樣 。 這里可能 編譯器 如果優(yōu)化 或許 會(huì)不一樣? 但是暫時(shí) 不考慮這個(gè)情況?
但是 在你的代碼里? 這些 變量 是分配到 系統(tǒng)的棧內(nèi)存 的? 棧內(nèi)存? 跟操作系統(tǒng)內(nèi)核 一樣在高位
就是? 假設(shè)你是32位系統(tǒng) 系統(tǒng)內(nèi)存 占用2g 內(nèi)存?
那么? 你的地址? ?大概分配情況就行?
0x? FF FF FF FF? 這個(gè)是內(nèi)存的 首地址?
然后 往下一直是內(nèi)核地址?
直接到? 2g內(nèi)存結(jié)束 大概 位置為 1000 0000 0000 0000 0000?0000 0000 0000???就是 0x 80 00 00 00?
然后棧內(nèi)存的首地址??位置為 0111 1111 1111 1111 1111 1111 1111 1111 就是 0x 7F??FF FF FF
從上 往下依次越來(lái)越小?
所以你看到的確實(shí)是? 內(nèi)存地址的值 變小了? 你測(cè)試的是對(duì)的
但是你沒(méi)有注意 課程里說(shuō)的 從高地址開(kāi)始分配
2018-02-25
同問(wèn)。a地址應(yīng)該比b大才對(duì)吧
2017-09-15
從上往下分配
2017-06-24
地址的分配并不是一定按命名順序的