typedef CArray <int, int> Array; 
CArray <Array,Array> x;  x.SetSize(10); 

for(int a = 0 ; a < 10 ; a++)
x[a].SetSize(10); 

//x.SetSize(10+3); CArray<int,int> y;

for(int b=1;b<11;b++)
y.Add(b);
for(int c=0;c<10;c++)
x[c].Copy(y);
CString cs;
CString cs1;
for(int d=0;d<1;d++)
{
for(int e=0;e<10;e++)
{
cs.Format("%d",x[d].GetAt(e));
cs1+="M";
cs1+=cs+" ";
}
 
m_list.InsertString(-1,cs1);
cs1="";
}
for(int f=0;f<9;f++)
{
for (int g =0;g<10;g++)
{
cs.Format("%d",x[f].GetAt(g));
cs1+="J";
cs1+=cs+" ";
}
m_list.InsertString(-1,cs1);
cs1="";
}
这是我写的一个carray二维数组x,我现在想找这个数组的每个元素的地址,怎么找呢?

解决方案 »

  1.   

    getdata是找指定索引上的值,不是找地址
      

  2.   

    取地址进线操作?这样不太安全吧,最好还是不用CArray<int,int> arrayData;
    ....
    int *p = &arrayData[nPos];
      

  3.   

    CArray::GetData()方法是获取数组的内存指针,然后可以作为普通数据指针来使用,所以可以获取其中某个元素的地址,而不是你说的“找指定索引上的值,不是找地址”,看一下MSDN先。
    但是这个地址,在数据修改后可能会变化,所以只能临时使用,不要作为持久数据地址来用。
      

  4.   

    哦 记错了 GetAt是取值