为何初始化的数组变没了
为什么初始化的数组变没了?
我的工程是PingDlg.h,我在头文件这样定义。
public:
char* m_pInitOid[2];
然后在PingDlg.cpp程序初始化的时候初始化参数。
//设定默认请求参数
for (int i = 0; i < 2; i++)
m_pInitOid[i] = new char[100]; //分配内存
m_pInitOid[0] = T2A(_T("1.3.6.1.2.1.4.21.1.1")); //获取IP
m_pInitOid[1] = T2A(_T("1.3.6.1.2.1.4.21.1.11")); //子网掩码
调试的时候发现数组均已经被赋上值。

问题是:
但是,在使用的时候为什么就不对了捏?

备注:VC6.0下这样写没有问题,我用的是VS2008+SP1
------解决方案--------------------
m_pInitOid[0] = T2A(_T("1.3.6.1.2.1.4.21.1.1")); //获取IP
m_pInitOid[1] = T2A(_T("1.3.6.1.2.1.4.21.1.11")); //子网掩码
只是指针指向了赋值的字符串,但是没有拷贝到分配的内存中,用strcpy
我的工程是PingDlg.h,我在头文件这样定义。
public:
char* m_pInitOid[2];
然后在PingDlg.cpp程序初始化的时候初始化参数。
//设定默认请求参数
for (int i = 0; i < 2; i++)
m_pInitOid[i] = new char[100]; //分配内存
m_pInitOid[0] = T2A(_T("1.3.6.1.2.1.4.21.1.1")); //获取IP
m_pInitOid[1] = T2A(_T("1.3.6.1.2.1.4.21.1.11")); //子网掩码
调试的时候发现数组均已经被赋上值。
问题是:
但是,在使用的时候为什么就不对了捏?
备注:VC6.0下这样写没有问题,我用的是VS2008+SP1
------解决方案--------------------
m_pInitOid[0] = T2A(_T("1.3.6.1.2.1.4.21.1.1")); //获取IP
m_pInitOid[1] = T2A(_T("1.3.6.1.2.1.4.21.1.11")); //子网掩码
只是指针指向了赋值的字符串,但是没有拷贝到分配的内存中,用strcpy