我有以下情況。無法訪問C++中的數組元素
class A
{
public:
std::vector<double *> getData()
{
return test;
}
void setData()
{
double * data = new double[1];
data[0] = 1;
double data1[] = {1};
test.push_back(data); // Pushing first element as double *
test.push_back(data1); // Pushing second element as double[]
}
private:
std::vector<double*> test;
};
class B
{
public :
void displaySum(A *a)
{
std::vector<double *> data = a->getData();
double sum = 0.0;
for(int i = 0; i < data.size(); i++)
{
printf("Data at %d : %f \n", i, data[i][0]); // Getting 0 for second element
sum = sum + data[i][0];
}
printf("Sum is : %f \n", sum);
}
};
int main()
{
A *a = new A();
a->setData();
B *b = new B();
b->displaySum(a);
return 0;
}
在類A具有成員變量的std ::向量測試,我填補載體雙*和第二元件雙[]但在輸出我得到0值。但正如在類A的setData方法中添加了double [] = {1}。所以在輸出我應該得到1在第二個元素。請幫忙 。難道我做錯了什麼。如果請解釋我。 謝謝!
OUTPUT ::
Data at 0 : 1.000000 // First Element
Data at 1 : 0.000000 // Second Element ->should be 1
Sum is : 1.000000 // Sum should be 2
'data1'超出範圍並且指針變爲懸掛。 – Angew 2014-10-09 11:31:32