68精品久久久久久欧美,最近中文字幕完整在线看一,久久亚洲男人天堂,最近中文字幕完整视频高清1

您好,歡迎進(jìn)入深圳市穎特新科技有限公司官方網(wǎng)站!

您現(xiàn)在的位置:首頁(yè) 新聞資訊 >> 新聞?lì)^條 >> 如何給地址賦值?(轉(zhuǎn))
新聞資訊
NEWS INFORMATION

如何給地址賦值?(轉(zhuǎn))

發(fā)布時(shí)間:2019-05-22

1.一種直觀的方法

 

假設(shè)現(xiàn)在需要往內(nèi)存0x12ff7c地址上存入一個(gè)整型數(shù)0x100。我們?cè)趺床拍茏龅侥兀?/p>

我們知道可以通過一個(gè)指針向其指向的內(nèi)存地址寫入數(shù)據(jù),那么這里的內(nèi)存地址0x12ff7c其本質(zhì)不就是一個(gè)指針嘛。所以我們可以用下面的方法:

1
2
int *p = (int *)0x12ff7c;
*p = 0x100;

 

需要注意的是將地址0x12ff7c賦值給指針變量p的時(shí)候必須強(qiáng)制轉(zhuǎn)換。

 

1.1 為什么在此處,我們敢往0x12ff7c這個(gè)地址賦值呢?

  至于這里為什么選擇內(nèi)存地址0x12ff7c,而不選擇別的地址,比如0xff00等。這僅僅是為了方便在Visual C++ 6.0上測(cè)試而已。如果你選擇0xff00,也許在執(zhí)行*p = 0x100;這條語(yǔ)句的時(shí)候,編譯器會(huì)報(bào)告一個(gè)內(nèi)存訪問的錯(cuò)誤,因?yàn)榈刂?xff00處的內(nèi)存你可能并沒有權(quán)力去訪問。既然這樣,我們?cè)趺粗酪粋(gè)內(nèi)存地址是可以合法的被訪問呢?也就是說你怎么知道地址0x12ff7c處的內(nèi)存是可以被訪問的呢?其實(shí)這很簡(jiǎn)單,我們可以先定義一個(gè)變量i,比如:

1
int i = 0;

變量i所處的內(nèi)存肯定是可以被訪問的。然后在編譯器的watch窗口上觀察&i的值不就知道其內(nèi)存地址了么?這里我得到的地址是0x12ff7c,僅此而已(不同的編譯器可能每次給變量i分配的內(nèi)存地址不一樣,而剛好Visual C++ 6.0每次都一樣)。你完全可以給任意一個(gè)可以被合法訪問的地址賦值。得到這個(gè)地址后再把“int i = 0;”這句代碼刪除。一切“罪證”銷毀得一干二凈,簡(jiǎn)直是做得天衣無縫。

 

2.另一個(gè)方法

 

除了這樣就沒有別的辦法了嗎?未必。我們甚至可以直接這么寫代碼:

1
*(int *)0x12ff7c 0x100;

這行代碼其實(shí)和上面的兩行代碼沒有本質(zhì)的區(qū)別。先將地址0x12ff7c強(qiáng)制轉(zhuǎn)換,告訴編譯器這個(gè)地址上將存儲(chǔ)一個(gè)int類型的數(shù)據(jù);然后通過鑰匙“*”向這塊內(nèi)存寫入一個(gè)數(shù)據(jù)。


上面討論了這么多,其實(shí)其表達(dá)形式并不重要,重要的是這種思維方式。也就是說我們完全有辦法給指定的某個(gè)內(nèi)存地址寫入數(shù)據(jù)的。

 

聯(lián)系方式0755-82591179

傳真:0755-82591176

郵箱:vicky@yingtexin.net

地址:深圳市龍華區(qū)民治街道民治大道973萬眾潤(rùn)豐創(chuàng)業(yè)園A棟2樓A08

双鸭山市| 监利县| 梓潼县| 金川县| 阳高县| 盱眙县| 南郑县| 新乡县| 商丘市| 湘潭县| 蓝山县| 靖边县| 儋州市| 卫辉市| 托克托县| 沙湾县| 威信县| 泸西县| 高邮市| 新和县| 石狮市| 祥云县| 洪洞县| 平江县| 南开区| 即墨市| 儋州市| 抚宁县| 定兴县| 宝丰县| 柳江县| 固原市| 崇仁县| 潮州市| 吴旗县| 虎林市| 武强县| 秦皇岛市| 安塞县| 广州市| 隆尧县|