Вызвано исключение по адресу (ntdll.dll) в prog.exe: 0xC0000005: нарушение прав доступа при чтении по адресу

157
15 февраля 2022, 15:30

Полный текст ошибки:

Вызвано исключение по адресу 0x0000000077A60EB7 (ntdll.dll) в prog.exe:
0xC0000005: нарушение прав доступа при чтении по адресу 0x000009E2CF156B88

Возникает при выполнении следующей части кода:

PWSTR fr;
/* получаю %USERPROFILE%\Desktop текущего пользователя */
SHGetKnownFolderPath(FOLDERID_Desktop, 0, NULL, &fr);
/* записываю в константу файл который хочу создать в Desktop */
const wchar_t fileName[10] = L"\\file.exe";
unsigned int fileNameLen = 0;
while (fileName[fileNameLen] != NULL) { //узнаю длину названия файла
    fileNameLen++;
}
unsigned int frLen = 0;
while (fr[frLen] != NULL) { //узнаю длину пути к Desktop
    frLen++;
}
for (unsigned int i = 0; i < fileNameLen; i++) { //конкат fr + fileName
    fr[frLen + i] = fileName[i];
}

Вероятнее всего, ошибка в конкатенации. Я так и не понял чем считается символ backslash \\, потому что при объявлении переменной fileName[10] он занимает два места (размер переменной 9 вместо 10 поставить не получится, хотя реально знаков в названии 9), но при прибавлении (конкатенации) к fr в debug отображается как один символ.

Answer 1

Ну вы же сами дали команду:

while (fr[frLen] != NULL)  //узнаю длину пути к Desktop
    frLen++;

а значит fr[frLen] == NULL т.е. начиная с этого места вы уже будете выходить за пределы массива, а вы еще хотите читать в fr[frLen + i] в последнем цикле.

READ ALSO
Получить ответ от сервера WebKit2GTK C++

Получить ответ от сервера WebKit2GTK C++

Пишу авторизацию бота на YouTube через свой браузер (WebKit) и столкнулся с такой проблемой: Согласно документации, сервер после авторизации перенаправит...

91
Не до конца понимаю Наследование в с++

Не до конца понимаю Наследование в с++

Что такое наследование в с++? Вот написал я класс

69
Шаблонное продвижение типа

Шаблонное продвижение типа

Есть шаблонная функция, которая должна считать сумму двух значений одного типаКак узнать (с помощью <type_traits>?) возвращаемый тип этой функции,...

65