小弟我很认真的和大家讨论类中数组的有关问题,希望大家知无不言言无不尽

我很认真的和大家讨论类中数组的问题,希望大家知无不言言无不尽
这是我今天想了好久都没想清楚的一个问题,我新建了一个工程文件Test.dsw,主要是测试一下在图片控件上画图的功能。首先,我在TestDlg.h文件中定义了如下变量

 int m_Data[4][4];

m_Data是我要绘制的图形的纵坐标,这是在.h文件中定义的,在TestDlg.cpp文件中对这个数组进行了初始化

int   m_Data[4][4]={15,10,20,30,40,45,28,22,26,20,24,34,28,28,21,23};

这样下来都没有问题;
于是我在对话框中添加了按钮控件,这个控件的作用是开始画图按钮。
接下来,我想在这个按钮的消息响应函数中定义了m_Data这个数组的指针,通过指针来索引数组

int*p=m_Data[0];//获取数组第一行第一列元素的地址,即是数组的首地址

但是我在调试中发现,这p指针得不到数组的首地址,并且在调试进入响应函数后m_Data里的值全部变成了随机数。
我不知道这是C++的问题,还是我对类中数组的定义存在问题?求大家指教
C++ MFC 数组

------解决方案--------------------
问题非常简单,可以归纳于两点:
1、类中的数组成员变量是不能直接初始化的,除非加上static修饰,不过这样就变成所有对象共用了;
2、构造函数中再次声明的int m_Data[4][4]实际上是局部变量,它覆盖了类的同名成员变量,对它的操作不影响成员变量m_Data,所以相当于成员变量m_Data并未被初始化。
------解决方案--------------------
引用:
试了一下,这个函数好像拷贝二维数组时会出错,,貌似拷贝时只拷贝了前四个 

那是你用错了