从storred指针地址获取twodimensinal动态数组的值

时间:2016-03-06 21:31:40

标签: c++ arrays pointers

我试图将动态数组的所有值初始化为:

      string** structure= new string*[nombre_attributs]();
            for(int j=0; j<nombre_attributs; j++){
                structure[j]= new string[2]();
            }

我可以毫无问题地填写它。然后,我在一个名为adresses_structures的指针数组中保留一个指向此数组的指针。 我现在如何访问此数组中的数据?

这次尝试:

    string  *test = adresses_structures[i];
    cout << "Value:" << *(test+0)<<endl;
    cout << "Value:" << *(test+1)<<endl;
    cout << "Value:" << *(test+2)<<endl;

不适用于数组中第二行的所有值。

我尝试了很多种组合
    for(int k=0; k<2;k++){
            for(int j=0;j<2;j++){
      cout << "Truc:" << *(test + k*2 + j)<<endl;

           }
    }

但似乎没有任何东西能够获得第二行的值。 谢谢你的任何建议。

1 个答案:

答案 0 :(得分:-1)

我认为string** structure与此处的adresses_structures相同。

当你做*(test+1)时,你从test地址移动一个字节。您应该按字符串对象的大小移动(选中sizeof(string))。像这样:*(test+1*sizeof(string))*(test+2*sizeof(string))