Форум программистов, компьютерный форум CyberForum.ru

Ошибка нарушения прав доступа при выполнении программы - C++

Восстановить пароль Регистрация
 
Владимир М
0 / 0 / 0
Регистрация: 08.10.2015
Сообщений: 32
29.06.2016, 21:42     Ошибка нарушения прав доступа при выполнении программы #1
Програмка компилируется, но не запускается.

Ошибка: 1000 (0) handle_exceptions: Exception: STATUS_ACCESS_VIOLATION
[main] preo 1000 (0) handle_exceptions: Dumping stack trace to preo.exe.core

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#include<stdio.h>
#include<iostream>
#include<string.h>
 
char* preo(char* stroka)
    {
        short kolsim = strlen(stroka);
        short c;
        for(short i = 0; kolsim != i; i++)
        {
            c = (short)(*(stroka+i));
            if ((c >= -32)&(c <=-17))
            {
                *(stroka+i) -= 64;
            }
            if ((c >= -16)&(c <=-1))
            {
                *(stroka+i) -= 16;
            }
            if ((c <= -33)&(c >= -64))
            {
                *(stroka+i) -= 64;
            }
            if (c == -72)
            {
                *(stroka+i) = -15;
            }
            if (c == -88)
            {
                *(stroka+i) = -16;
            }
        }
        return stroka;
    }
 
int main(int argv, char* args[])
{
 cout << preo("Строчка");
 return 0;
}
но если закоментировать:
C++
1
2
3
4
5
6
7
8
9
10
11
12
                if ((c >= -32)&(c <=-17))
            {
                *(stroka+i) -= 64;
            }
            if ((c >= -16)&(c <=-1))
            {
                *(stroka+i) -= 16;
            }
            if ((c <= -33)&(c >= -64))
            {
                *(stroka+i) -= 64;
            }
запускается.
Я так понял что с условиями после if система конфликтует.

ЧТО ЗА БЕДА?
компилятор MinGW.
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.06.2016, 21:42     Ошибка нарушения прав доступа при выполнении программы
Посмотрите здесь:

Нарушения прав доступа при записи(не в файл). C++
C++ Переворот строки. Необработанное исключение. Нарушения прав доступа
C++ Ошибка: нарушение прав доступа при чтении
Нарушения прав доступа при чтении C++
Ошибка: Нарушение прав доступа при чтении C++
Ошибка прав доступа при чтении C++
Нарушения прав доступа к чтению (работа с файлами) C++
C++ Нарушения прав доступа при чтении

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Unknownx
Заблокирован
29.06.2016, 21:53     Ошибка нарушения прав доступа при выполнении программы #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Неверное условие окончания цикла, перепиши вот так
Цитата Сообщение от Владимир М Посмотреть сообщение
for(short i = 0; i < kolsim; i++)
Добавлено через 7 минут
Ладно реакции ноль, показываю
Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#include<stdio.h>
#include<iostream>
#include<string.h>
 
char* preo(char* stroka)
    {
        short kolsim = strlen(stroka);
        short c;
        for(short i = 0; i < kolsim; i++)
        {
            c = (short)(*(stroka+i));
            if ((c >= -32)&(c <=-17))
            {
                *(stroka+i) -= 64;
            }
            if ((c >= -16)&(c <=-1))
            {
                *(stroka+i) -= 16;
            }
            if ((c <= -33)&(c >= -64))
            {
                *(stroka+i) -= 64;
            }
            if (c == -72)
            {
                *(stroka+i) = -15;
            }
            if (c == -88)
            {
                *(stroka+i) = -16;
            }
        }
        return stroka;
    }
 
int main(int argv, char* args[])
{
     char str[] = "Строчка";
     cout << preo(str);
     return 0;
}

http://codepad.org/SZp2ArYc
Вдобавок в коде использовался статический строковый литерал
Цитата Сообщение от Владимир М Посмотреть сообщение
"Строчка")
, модификация которого приводит к сигфолту.
Владимир М
0 / 0 / 0
Регистрация: 08.10.2015
Сообщений: 32
30.06.2016, 04:24  [ТС]     Ошибка нарушения прав доступа при выполнении программы #3
Благодарю, заработало!
Yandex
Объявления
30.06.2016, 04:24     Ошибка нарушения прав доступа при выполнении программы
Ответ Создать тему
Опции темы

Текущее время: 09:21. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru