You aren't supposed to pass it as a char** pointer.
Why I used vector to solve all problems is because it never changes type.
Same definition in the function and same argument in the called function. No pointer mess, no special syntax. And you can get the size at any time.Code:std::vector< std::vector<std::string> > v; void myfunc(std::vector< std::vector<std::string> >& v) { }