最近遇到一个问题,在对全局的结构体变量进行赋值之后,再读取其中内容的时候发现在Debug下是正常的,在Release下不正常。
下面这个代码是可以重现这个问题的:一个全局的结构体变量,在主函数中对它进行赋值,然后打印出来结构,发现和赋值不一致,并且在Debug和Release下的结果不一致。
代码:
// Struct.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include
using namespace std;
struct MyStruct
{
int a;
int b;
int c;
char* ca;
char* cb;
char* cc;
}st;
int main(int argc, _TCHAR* argv[])
{
//MyStruct st;
st.a = 1;
st.b = 2;
st.c = 3;
st.ca = "ca";
st.cb = "cb";
st.cc = "cc";
printf("a: %d; b: %d; c %d: ; ca : %c; cb : %c; cc : %c;", st.a, st.b, st.c, st.ca, st.cb, st.cc);
getchar();
return 0;
}
Debug下结果:
Release: