[問題] VC++ 記憶體問題 求教
開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
VC++ 2008
額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)
無
問題(Question):
出自The C Puzzle Book 裡面的範例
#include "stdio.h"
struct S1{
char *s;
int i;
struct S1 *s1p;
};
int _tmain(int argc, _TCHAR* argv[])
{
static struct S1 a[] = {
{ "abcd", 1, a+1},
{ "efgh", 2, a+2},
{ "ijkl", 3, a}
};
struct S1 *p = a;
int i;
for( i=0; i<2; i++)
{
printf("++a[i].s[3]= %c", ++a[i].s[3]);
}
return 0;
}
這是我們公司同事問的問題
我把這段程式碼放進VC++專案
編譯的時候沒有問題
但是執行結果卻會出現
於 0x000d141b 的 S2.exe 中發生未處理的例外狀況: 0xC0000005:
寫入位置 0x000d574f 時發生存取違規
問題出在 printf("++a[i].s[3]= %c", ++a[i].s[3]);
因為這是從書本上照打的
我也比對幾個版本所以先排除書本出錯的的可能性
不知道有哪位大大可以解釋一下出錯的原因?
如果有相關資料讓我能夠深入閱讀會更加感謝
小弟我是做數學演算法的開發
對於資工的軟硬體架構並不是非常了解
還請各位大大見諒
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 59.124.27.70
※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1456999447.A.04A.html
→
03/03 18:09, , 1F
03/03 18:09, 1F
→
03/03 18:11, , 2F
03/03 18:11, 2F
→
03/03 18:12, , 3F
03/03 18:12, 3F
推
03/03 20:52, , 4F
03/03 20:52, 4F
→
03/03 20:52, , 5F
03/03 20:52, 5F