Я получаю эту ошибку в визуальной студии: ошибка отладки отключена! Выражение: (L "Буфер слишком мал" && 0)
Это происходит в следующих строках кода:
program_name = (char *) malloc(strlen(argv[0])+1);
strcpy_s(program_name,sizeof(program_name),argv[0]);
Кажется, размер буфера, который он пытается скопировать массив символов, слишком мал, но я не уверен, почему?
sizeof(program_name)
возвращает размер указателя на char
. Это не то, что вы хотите. Замените это с помощью strlen(argv[0])+1
чтобы передать размер выделенного буфера.
Однако также обратите внимание, что в C++ было бы лучше просто использовать std::string
:
std::string program_name(argv[0]);
sizeof(program_name)
будет4
или8
зависимости от того, используете ли вы 32-разрядную или 64-разрядную платформу.