Разыменуйте указатель:
(*vo).push_back(object());
vo->push_back(object()); // short-hand
Обратите внимание, что это базовая концепция языка, вам может быть полезно прочитать хорошую книгу .
Обратите внимание, что у этого есть явный недостаток:
f(0); // oops, dereferenced null; undefined behavior (crash)
Чтобы сделать вашу функцию безопасной, вам нужно правильно обрабатывать все допустимые значения указателя (да, нулевое является допустимым значением).Либо добавьте какую-нибудь проверку:
if (!vo) return;
// or:
if (!vo) throw std::invalid_argument("cannot be null, plz");
Или сделайте свою функцию по своей сути правильной, используя ссылку:
void f(vector<object>& vo) // *must* reference a valid object, null is no option
{
vo.push_back(object()); // no need to dereference, no pointers; a reference
}
Теперь ответственность за функцию лежит на вызывающей сторонес действительной ссылкой.