Обратите внимание, что ответ Андреаса Бринкса - это действительно то, что вы хотите сделать, где vector выполняет всю тяжелую работу по выделению ресурсов и обеспечивает безопасность исключений. Я настоятельно рекомендую вам изменить любую причину, по которой вы не можете использовать вектор. Но если вы действительно не можете этого сделать, я думаю, вы могли бы сделать что-то вроде следующего кода:
int numArgs = YOUR_NUMBER_HERE;
char **myArgv = new char*[numArgs+1];
for (int i=0; i<numArgs; ++i) {
myArgv[i] = new char[at least size of your argument + 1];
strncpy(myArgv[i], whereever your string is, buffer size);
myArgv[buffer size] = '\0';
}
myArgv[numArgs] = NULL;
// use myArgv here
// now you need to manually free the allocated memory
for (int i=0; i<numArgs; ++i) {
delete [] myArgv[i];
}
delete [] myArgv;