Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
0 / 0 / 1
Регистрация: 12.03.2017
Сообщений: 10
1

Char* (no symbols loaded for kernel32.dll)

29.10.2017, 16:21. Показов 1315. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Программа останавливается и пишет: "Unhandled exception thrown: write access violation. Password was 0x203CC45."

C++
1
2
3
4
5
6
7
8
9
10
int i = 0;
char* password = "1234"; // char to int: char - 48
    
    for (i = (strlen(password) - 1); i >= 0; i--)
    {
        if ((password[i] - 48) < 9)
        {
            password[i] = (char)((int)(password[i] + 1) );
        }
    }
C++
1
password[i] = (char)((int)(password[i] + 1) );
- На этой строке программа останавливается.
В Call stack пишет: "[Frames below may be incorrect and/or missing, no symbols loaded for kernel32.dll]"

Я пытаюсь строку 12345 -> 23456, с типом string этот код работал, что за проблемы с char* ?
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.10.2017, 16:21
Ответы с готовыми решениями:

При компилировании Ошибка Symbols loaded
Доброго дня, подскажите в чём может быть проблема и как её решить? При компиляции кода появляется...

Не удаляется kernel32.dll (надо заменить устаревший файл kernel32.dll на новый из sp3)
У меня стоит WinXP sp2. Мне надо заменить устаревший файл kernel32.dll на новый из sp3. Я зашел в...

Ошибка: the breakpoint will not be hit no symbols loaded
Всем доброго времени суток. Появилась такая ошибка после того как я добавли несколько классов из...

Отличие между kernel32.lib и kernel32.dll
Объясните пожалуйста в чем отличие между kernel32.lib и kernel32.dll

3
3528 / 2686 / 334
Регистрация: 11.03.2009
Сообщений: 6,168
29.10.2017, 16:36 2
Лучший ответ Сообщение было отмечено Qinezz как решение

Решение

C++
1
char* password = "1234"
Здесь происходит присвоение указателю password адреса константной строки "1234".
C++
1
password[i] = (char)((int)(password[i] + 1) )
А здесь происходит попытка записи данные по адресу находящемуся в указателе password. Но в указателе password находится адрес константной строки. А по определению константности этого делать никак нельзя.
Один из вариантов решения
C++
1
2
3
char password[100];
strcpy( password, "1234");
//далее сама программа
1
7791 / 6558 / 2984
Регистрация: 14.04.2014
Сообщений: 28,667
29.10.2017, 16:45 3
C++
1
char password[] = "1234";
И int не нужен, просто
C++
1
++password[i];
1
0 / 0 / 1
Регистрация: 12.03.2017
Сообщений: 10
29.10.2017, 16:53  [ТС] 4
Спасибо, разобрался )
Забыл, что на динамическую строку нужно выделять память.
0
29.10.2017, 16:53
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.10.2017, 16:53
Помогаю со студенческими работами здесь

Не работают точки breakpoint - The breakpoint will not currently be hit. No symbols have been loaded for this document
что за проблема , как ее решить на VB 2010 ? только начал в нем работать и одна проблема за другой...

Точка входа в процедуру decodepointer не найдена в библиотеке DLL KERNEL32.dll
Ээ.... Здравствуйте есть такая проблема привожу на примере установки LoL. начинаю инсталить...

Точка входа в процедуру InitializeConditionVariable не найдена в библиотеке DLL KERNEL32.dll
Добрый день, товарищи! Помогите, пожалуйста, советом в решении следующией проблемы: Пытаюсь...

Точка входа в процедуру InterlockedCompareExchange64 не найдена в библиотеке DLL KERNEL32.DLL
День добрый! При запуске моей программы (много моего кода + много разных сторонних dll) на WinXP...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru