Я бы предположил, что либо p
, либо p->returnData
является неинициализированным / недействительным указателем.
Кроме того, это не приведет к сбою, но поможет исправить текущую проблему: остерегайтесь возврата указателя на локальную переменную. Как только ваша функция выйдет из области видимости, локальный вектор будет уничтожен, а &v
станет недопустимым указателем. Если вы хотите, чтобы ваш вектор существовал за пределами текущей функции, вам нужно выделить его в куче:
vector *v = new video();
...
p->returnData->videos.push_back(v);