int main(int argc, char argv)
{
int myarray[] = {1, 2, 3, 5};
std::vector<int> array(myarray, myarray + 4);
std::vector<int> *p = testvector(array);
std::vector<int>::const_iterator it;
for(it=p->begin(); it != p->end(); ++ it)
{
printf("%d ", *it);
}
return 0;
}
std::vector<int> *testvector(std::vector<int> array)
{
return &array;
}
以上是我的測試代碼;它有什麼不對呢0 0 3 5而不是1 2 3 5爲什麼矢量返回缺少一些值?
您正在返回對臨時值的引用。這是未定義的行爲。 –
'testvector'中的數組是您傳入的數組的副本。 –