나는 두 배 배열에 포인터의 벡터를 창조한다. 함수 (예 : InsertIntoVector
)가 종료 된 후이 포인터가 유효합니까? 나중에 GetVecElement
과 같이 포인터를 가져 오는 경우 포인터는 할당 된 동일한 메모리 위치를 포인터로 가리킬 수 있습니까?참조를 벡터로 푸시하는 것은 함수가 종료 한 후에 유효한 참조입니까?
class A {
vector<double*> vec;
void insertIntoVector(double x, double y);
void GetVecElement(int i, double& x, double& y);
};
A::insertIntoVector(double x, double y) {
double* xy = new double[2];
xy[0] = x; xy[1] = y;
vec.push_back(xy);
}
A::GetVecElement(int i, double& x, double& y)
{
x = vec[i][0]; // will the reference to the double array still be valid?
y = vec[i][1];
}
이는 참조가 아닙니다! 참조 벡터가 없습니다. 그것들은 _poi입니다. nters_ –
stackoverflow가 새로 도입되었지만 이전 답변을 지금 받아 들였습니다. 그래서 죄송 합니다만 포인터는 예를 들어 언급하지 않습니다. –