[問題] CLI/C++ Struct Array 溢位的問題
開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
CLI/C++, VC2005
Code:
typedef struct
{
int Member1;
int Member2;
int Member3;
} MemStruct;
static MemStruct MemberGroup[10];
MemberGroup[0].Member1 = 11;
MemberGroup[0].Member2 = 12;
MemberGroup[0].Member3 = 13;
進入debug看變數內容, 照理講在給值之前, Member1~3應該都要等於0
但卻是亂七八糟的數值, 給值之後, 內容也沒變化
反倒是填到MemberGroup[1], 位置也不對
Value:
MemberGroup[0].Member1 : 0 -> 12
MemberGroup[0].Member2 : 0 -> 13
MemberGroup[0].Member3 : 0
換另一個方式去看內容, 結果是正確的
MemStruct* p = MemberGroup;
Value:
p->Member1 : 11
p->Member2 : 12
p->Member3 : 13
真詭異, 怎會這樣呢?
請各位大大指點, 謝謝
//
重新Compile了幾次,不論#pragma pack加或不加
從debug看到的值是錯的,但取出來的值正確
且
value = MemberGroup[0].Member1
value : 12 正確
value = p->Member1
value : 12344 錯誤
//
找到原因
Common Language Runtime Support
從(/clr:pure)改為(/clr)就可以了
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 60.249.12.145
※ 編輯: licheer 來自: 60.249.12.145 (10/02 16:14)
→
10/02 16:30, , 1F
10/02 16:30, 1F
推
10/02 18:43, , 2F
10/02 18:43, 2F
→
10/03 11:19, , 3F
10/03 11:19, 3F
→
10/03 12:13, , 4F
10/03 12:13, 4F
→
10/03 12:14, , 5F
10/03 12:14, 5F
→
10/03 12:15, , 6F
10/03 12:15, 6F
→
10/03 12:17, , 7F
10/03 12:17, 7F
※ 編輯: licheer 來自: 60.249.12.145 (10/03 14:03)
※ 編輯: licheer 來自: 60.249.12.145 (10/03 14:35)
推
10/03 15:13, , 8F
10/03 15:13, 8F
→
10/03 16:42, , 9F
10/03 16:42, 9F
→
10/03 16:43, , 10F
10/03 16:43, 10F
→
10/03 16:43, , 11F
10/03 16:43, 11F
→
10/03 16:43, , 12F
10/03 16:43, 12F
→
10/03 16:44, , 13F
10/03 16:44, 13F
推
10/03 23:05, , 14F
10/03 23:05, 14F
→
10/03 23:29, , 15F
10/03 23:29, 15F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章