亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 17601 | 回復(fù): 53
打印 上一主題 下一主題

[C] 內(nèi)存中是否有不可讀的區(qū)域 [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2009-07-27 11:23 |只看該作者 |倒序?yàn)g覽
例子程序如下:
#include <stdio.h>

int main()
{
        char *p = "abcd";
        int i = 0;
        for (i = 0; i < 10000; i++) {
                printf("p[%d] = %d\n", i, p);
        }
}

在AIX5.2的環(huán)境下,當(dāng)i=2700左右的時(shí)候,程序會(huì)coredump.請問AIX的內(nèi)存區(qū)域中是否有不可讀的區(qū)域。恐x謝

論壇徽章:
80
20周年集字徽章-慶
日期:2020-10-28 14:09:1215-16賽季CBA聯(lián)賽之北京
日期:2020-10-28 13:32:5315-16賽季CBA聯(lián)賽之北控
日期:2020-10-28 13:32:4815-16賽季CBA聯(lián)賽之天津
日期:2020-10-28 13:13:35黑曼巴
日期:2020-10-28 12:29:1520周年集字徽章-周	
日期:2020-10-31 15:10:0720周年集字徽章-20	
日期:2020-10-31 15:10:07ChinaUnix元老
日期:2015-09-29 11:56:3020周年集字徽章-年
日期:2020-10-28 14:14:56
2 [報(bào)告]
發(fā)表于 2009-07-27 11:25 |只看該作者
應(yīng)該可以讀取的。修改就不一定了

論壇徽章:
0
3 [報(bào)告]
發(fā)表于 2009-07-27 11:27 |只看該作者

回復(fù) #2 baopbird2005 的帖子

當(dāng)i=2700左右的時(shí)候,printf語句coredump了,這應(yīng)該是不可讀吧?

論壇徽章:
0
4 [報(bào)告]
發(fā)表于 2009-07-27 13:06 |只看該作者

回復(fù) #3 wzabcd1234 的帖子

LZ,你覺得隨著 i 的自增,printf讀的地址有變化嗎?

論壇徽章:
0
5 [報(bào)告]
發(fā)表于 2009-07-27 13:12 |只看該作者

回復(fù) #4 kouu 的帖子

你好,地址是有變化的,源代碼修改了一下,打印出來的結(jié)果如下,內(nèi)存地址是在遞增的:
p[2745] = 0, addr = 110000ff9
p[2746] = 0, addr = 110000ffa
p[2747] = 0, addr = 110000ffb
p[2748] = 0, addr = 110000ffc
p[2749] = 0, addr = 110000ffd
p[2750] = 0, addr = 110000ffe
p[2751] = 0, addr = 110000fff

論壇徽章:
1
雙子座
日期:2015-01-04 14:25:06
6 [報(bào)告]
發(fā)表于 2009-07-27 13:16 |只看該作者
看源碼咋能遞增?

論壇徽章:
0
7 [報(bào)告]
發(fā)表于 2009-07-27 13:27 |只看該作者

回復(fù) #6 yecheng_110 的帖子

#include <stdio.h>

int main()
{
        int i = 0;
        char *p = "abcd";
        for (i = 0; i < 10000; i++) {
                printf("p[%d] = %d, addr = %p\n", i, p, p + i);
        }
}

論壇徽章:
0
8 [報(bào)告]
發(fā)表于 2009-07-27 13:52 |只看該作者

回復(fù) #7 wzabcd1234 的帖子

產(chǎn)生段錯(cuò)誤了阿。比如說給你分配的棧是從b7ef3000-b7efc000,當(dāng)?shù)刂烦^b7efc000就會(huì)出現(xiàn)段錯(cuò)誤的。
你可以看看/proc/$pid/maps, 了解一下各個(gè)段的分配情況。

論壇徽章:
0
9 [報(bào)告]
發(fā)表于 2009-07-27 15:03 |只看該作者

回復(fù) #8 progliker 的帖子

你好,我去/proc/$pid目錄下找了,maps是亂碼,沒法看。

有一些問題還是不太理解,段錯(cuò)誤一般是由于寫越界引起的吧,讀越界為什么也會(huì)有段錯(cuò)誤?

論壇徽章:
0
10 [報(bào)告]
發(fā)表于 2009-07-27 15:33 |只看該作者
讀一樣可以引起段錯(cuò)誤。
有興趣可以看看內(nèi)核代碼do_page_fault函數(shù)是怎么處理讀越界的
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報(bào)專區(qū)
中國互聯(lián)網(wǎng)協(xié)會(huì)會(huì)員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP