一.真正有用的內存地址
實際上真正有用的地址是寫入位置,在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:讀取/寫入位置沖突——從去掉字符串所有空格說起
