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' - это копия массива, в который вы проходили. –