問題分析:
創(chuàng)新互聯(lián)建站是一家專業(yè)提供牟定企業(yè)網(wǎng)站建設(shè),專注與成都網(wǎng)站建設(shè)、成都做網(wǎng)站、H5響應(yīng)式網(wǎng)站、小程序制作等業(yè)務(wù)。10年已為牟定眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站設(shè)計(jì)公司優(yōu)惠進(jìn)行中。
這種情況是指:訪問了你不應(yīng)該/沒有權(quán)限訪問的內(nèi)存地址空間,比如訪問數(shù)組時(shí)越界;對動(dòng)態(tài)內(nèi)存訪問時(shí)超出了申請的內(nèi)存大小范圍。下面的程序就是一個(gè)典型的數(shù)組越界問題。pt是一個(gè)局部數(shù)組變量,其大小為4,p初始指向pt數(shù)組的起始地址,但在對p循環(huán)疊加后,p超出了pt數(shù)組的范圍,如果此時(shí)再對p進(jìn)行寫操作,那么后果將不可預(yù)期。
#include
#include
int main(int argc,char *argv[])
{
int len = 4;
int* pt = (int*)malloc(len*sizeof(int));
int * p=pt;
for(int i=0;i { p++; } *p=5; printf("the value of equal:%d",*p); return 0; } gcc -Wall test.c -g -o test valgrind --tool=memcheck --leak-check=full ./test 輸出結(jié)果顯示,在該程序的第15行,進(jìn)行了非法的寫操作;在第16行,進(jìn)行了非法讀操作。準(zhǔn)確地發(fā)現(xiàn)了上述問題。
文章名稱:c內(nèi)存讀寫越界
文章源于:http://weahome.cn/article/jsojgp.html