最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

linux C編程常見(jiàn)的錯(cuò)誤總結(jié)(必看篇)

 更新時(shí)間:2016年12月29日 10:54:39   投稿:jingxian  
下面小編就為大家?guī)?lái)一篇linux C編程常見(jiàn)的錯(cuò)誤總結(jié)(必看篇)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧

定義

所謂的段錯(cuò)誤就是指訪問(wèn)的內(nèi)存超出了系統(tǒng)所給這個(gè)程序的內(nèi)存空間,通常這個(gè)值是由gd tr來(lái)保存的,他是一個(gè)48位的寄存器,其中的32位是保存由它指向的 gdt表,后13位保存 相應(yīng)于gdt的下標(biāo),最后3位包括了程序是否在內(nèi)存中以及程序的在cpu中的運(yùn)行級(jí)別,指向 的gdt是由以64位為一個(gè)單位的表,在這張表中就保存著程序運(yùn)行的代碼段以及數(shù)據(jù)段的起 始地址以及與此相應(yīng)的段限和頁(yè)面交換還有程序運(yùn)行級(jí)別還有內(nèi)存粒度等等的信息。分段錯(cuò)誤(通常簡(jiǎn)稱為段錯(cuò)誤)是一個(gè)特定的錯(cuò)誤條件,計(jì)算機(jī)軟件的操作期間發(fā)生。總之,一個(gè)分割故障發(fā)生在一個(gè)程序試圖訪問(wèn)一個(gè)內(nèi)存位置,它是不允許訪問(wèn),或試圖以一種不允許一個(gè)內(nèi)存位置的訪問(wèn)(例如,試圖寫(xiě)入只讀位置,或覆蓋操作系統(tǒng)的一部分)。一旦一個(gè)程序發(fā)生了越界訪問(wèn),cpu就會(huì)產(chǎn)生相應(yīng)的保護(hù),于是segmentation fault就出現(xiàn)了通過(guò)上面的解釋,段錯(cuò)誤應(yīng)該就是訪問(wèn)了不可訪問(wèn)的內(nèi)存,這個(gè)內(nèi)存區(qū)要么是不存在的,要么是受到系統(tǒng)保護(hù)的,還有可能是缺少文件或者文件損壞。

————以上來(lái)自百度百科

斷錯(cuò)誤產(chǎn)生的原因:

1 訪問(wèn)不存在的內(nèi)存地址

#include <unistd.h>
#include <assert.h>
#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
    int *ptr = NULL;
    *ptr = 0;
	return EXIT_SUCCESS;
} 

2 訪問(wèn)系統(tǒng)保護(hù)的內(nèi)存地址

#include <unistd.h>
#include <assert.h>
#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{ 
	int *ptr = (int *)0;
	*ptr = 100;
	return EXIT_SUCCESS;
}

3 訪問(wèn)只讀的內(nèi)存地址

#include <unistd.h>
#include <assert.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h> 
int main(int argc, char *argv[])
{ 
    char *ptr = "xiyoulinux";
    strcpy(ptr, "test");
 return EXIT_SUCCESS;
}

4 棧溢出

#include <unistd.h>
#include <assert.h>
#include <stdio.h>
#include <stdlib.h>

int main()
{ 
    main();
}

以上這篇linux C編程常見(jiàn)的錯(cuò)誤總結(jié)(必看篇)就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論

泾川县| 岚皋县| 新田县| 四平市| 沅江市| 洪洞县| 乌兰浩特市| 贵州省| 电白县| 阳信县| 穆棱市| 宁都县| 天津市| 藁城市| 正宁县| 湟源县| 海伦市| 五莲县| 土默特右旗| 彰化市| 休宁县| 成都市| 玉溪市| 铁岭县| 东海县| 佛山市| 兴宁市| 湘潭市| 海阳市| 绥宁县| 虹口区| 肇州县| 晋州市| 乡城县| 内黄县| 金川县| 龙川县| 凌源市| 昂仁县| 化德县| 余干县|