我真的很困惑指針和數組的使用。 我想從命令行傳遞一些值到數組。我需要使用該陣列進行其他處理。將char ** arr轉換爲char * arr []
int main(int argc, char *argv[])
{
std::vector<const char *> args {};
args.insert(args.end(), argv+1, argv + argc);
const char **arr = args.data();
}
這工作,但不是我想要的,原來的代碼使用
const char *arr[] = {"some", "vaule", "here"};
我想傳遞arr中,而不是裏面的代碼分配的值。
我需要數組,但下面的代碼不起作用。
const char *arr[] = args.data();
所以我想保持我的數組,因爲其他處理,我該怎麼做呢? 謝謝!
args變量應該用一個構造函數而不是{}來初始化,這就是我的mingw-g ++版本所說的 –
你真的需要'std :: vector'構造的可能性非常小。此外,你不能「將事情傳遞給數組」。如果你想處理你的命令行參數 - 就這麼做;他們就在那裏。如果你想迭代它們,你可以考慮['gsl :: span'](https://www.quora.com/What-is-the-span-T-in-the-CppCoreGuidelines)。 –
einpoklum