Я использую VS 2019, и стандарт языка C ++ установлен в значение по умолчанию, которое я предполагаю, что это C ++ 11?
У меня есть следующий конструктор класса в заголовочном файле:
input_parser(int& argc, wchar_t** argv)
{
for (auto i = 0; i < argc; ++i)
{
this->tokens_.emplace_back(argv[i]);
}
};
Для вызова метода argv параметр Я создаю массив wchar_t следующим образом:
std::wstring command_line = L"-m \"F-14RHV\" -s \"BIT|Flir\" -d";
auto buffer = new wchar_t[command_line.length() + 1];
wcsncpy_s(buffer, command_line.length()+1, command_line.c_str(), command_line.length() + 1);
const auto inputs = input_parser(argc, &buffer);
delete[] buffer;
Внутри конструктора первый проход, когда argc == 0
в порядке, но я получаю нарушение доступа, когда argc == 1
.