關於VS中未經處理的異常的梳理


一.真正有用的內存地址

實際上真正有用的地址是寫入位置,在VS的內存窗口中去查看該位置,可以看到具體出現的問題.

 

二.發生訪問沖突的可能原因

1.訪問了0x00位置的數據

2.對內存中常量進行修改.

char * pcontent = "  abcdef  "; //待去掉前后空格的字符串(共10字節)
char * p = NULL;

/* 1去除后面的空格 */
p = pcontent + strlen( pcontent ) - 1;  //指針p指向字符串的末尾
while( *p == 0x20 )
{
    p--;
}
*(p+1) = 0x00;  //此處就是對常量進行修改,因為p指向的是常量區.解決辦法是,把pcontent聲明為數組.
printf( "Line=[%d], pcontent=[%s]\n", __LINE__, pcontent );

參考文章:未經處理的異常:0xC0000005:讀取/寫入位置沖突——從去掉字符串所有空格說起

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM