我试图将动态数组的所有值初始化为:
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;
}
}
但似乎没有任何东西能够获得第二行的值。 谢谢你的任何建议。
答案 0 :(得分:-1)
我认为string** structure
与此处的adresses_structures
相同。
当你做*(test+1)
时,你从test
地址移动一个字节。您应该按字符串对象的大小移动(选中sizeof(string)
)。像这样:*(test+1*sizeof(string))
或*(test+2*sizeof(string))