да ну их в зад, так пусть хавают
в принципе, можно замарочиться:
int foo(int argc, char*argv[]) {
for(int i = 0; i < argc; ++i) {
std::cout << "[" << argv[i] << "]" << endl;
}
return 0;
}
int call_foo(std::string s)
{
size_t offset[3] = {};
s += '\0';
offset[1] = s.size();
s += "abc";
s += '\0';
offset[2] = s.size();
s += "def";
s += '\0';
char* head = s.data();
char* argv[] = {head, head + offset[1], head + offset[2], nullptr};
return foo(3, argv);
}
int main() {
call_foo("test");
}
и спать спокойно :)