Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.02.2011, 21:00   #1
Zhenya-Pvl
Пользователь
 
Регистрация: 26.03.2010
Сообщений: 42
Восклицание Unhandled exception at 0x76f06344 in Project.exe: 0xC0000005: Access violation.

В заголовке указано сообщение, выскакивающее с указанным там-же значком при выполнении вот этого кода:
Код:
int A,n,x;
char A2[100];
bool otr;

if (otr)
{
	for (int i = 1; 1 <= n; i++)
		if (A2[i] == '1')
			A2[i] = '0';
		else
			A2[i] = '1';

}
где массив A2 состоит из эл-тов '0' и '1'.
Видоизменял код как только мог, фантазия истощена. Что делать?
Эта ошибка останавливает всю программу.
Zhenya-Pvl вне форума Ответить с цитированием
Старый 22.02.2011, 21:02   #2
coNsept
Форумчанин
 
Аватар для coNsept
 
Регистрация: 14.12.2009
Сообщений: 716
По умолчанию

" " а не ' '
coNsept вне форума Ответить с цитированием
Старый 22.02.2011, 21:04   #3
Zhenya-Pvl
Пользователь
 
Регистрация: 26.03.2010
Сообщений: 42
По умолчанию

Неправда! Это не паскаль...

Попробовал, он вообще красным подчеркнул. Не, не в кавычках дело.

Последний раз редактировалось Zhenya-Pvl; 22.02.2011 в 21:06. Причина: попробовал
Zhenya-Pvl вне форума Ответить с цитированием
Старый 22.02.2011, 21:09   #4
coNsept
Форумчанин
 
Аватар для coNsept
 
Регистрация: 14.12.2009
Сообщений: 716
По умолчанию

В вашем случае у вас строка...
Цитата:
'' - символьная константа
"" - строковая константа
coNsept вне форума Ответить с цитированием
Старый 22.02.2011, 21:10   #5
Obey-Kun
Линуксоид
Участник клуба
 
Аватар для Obey-Kun
 
Регистрация: 31.07.2009
Сообщений: 1,403
По умолчанию

У тебя for идёт от 1 до n, а должен от 0 до n (если n==100).
Код:
if (otr) {
    for (int i = 0; 1 < n; ++i) {
        if (A2[i] == '1') {
            A2[i] = '0';
        } else {
            A2[i] = '1';
        }
    }
}
Обрати внимание на скобки. Пиши скобки ВСЕГДА, а то так и запутаться можно.

Цитата:
В вашем случае у вас строка...
У него массив символов, для одного элемента этого массива надо использовать одинарные кавычки.
Я схожу с ума или это глючит реальность?
Jabber ID: obey@obey.su

Последний раз редактировалось Obey-Kun; 22.02.2011 в 21:12.
Obey-Kun вне форума Ответить с цитированием
Старый 22.02.2011, 21:10   #6
Zhenya-Pvl
Пользователь
 
Регистрация: 26.03.2010
Сообщений: 42
По умолчанию

Как? Я вроде объявлял не строку, а char'овский массив... Строка, как я помню, это string =)
Zhenya-Pvl вне форума Ответить с цитированием
Старый 22.02.2011, 21:13   #7
Zhenya-Pvl
Пользователь
 
Регистрация: 26.03.2010
Сообщений: 42
По умолчанию

Цитата:
Сообщение от Obey-Kun Посмотреть сообщение
У тебя for идёт от 1 до n, а должен от 0 до n (если n==100).
А если я записывал значения от 1 до n == 8?

Цитата:
Сообщение от Obey-Kun Посмотреть сообщение
Обрати внимание на скобки. Пиши скобки ВСЕГДА, а то так и запутаться можно.
Правда?.. Мне кажется, что это наоборот делает код более громоздким... Недавно с паскаля на с++ перешёл, первое впечатление - настолько чистый язык! =)

Последний раз редактировалось Zhenya-Pvl; 22.02.2011 в 21:14. Причина: испр.
Zhenya-Pvl вне форума Ответить с цитированием
Старый 22.02.2011, 21:16   #8
Zhenya-Pvl
Пользователь
 
Регистрация: 26.03.2010
Сообщений: 42
По умолчанию

Блин!!! 1 вместо i !!!
Ладно, всем спасибо =) Извините за беспокойство)))
Zhenya-Pvl вне форума Ответить с цитированием
Старый 22.02.2011, 21:20   #9
coNsept
Форумчанин
 
Аватар для coNsept
 
Регистрация: 14.12.2009
Сообщений: 716
По умолчанию

Цитата:
У него массив символов, для одного элемента этого массива надо использовать одинарные кавычки.
Ух да sorry, только что проверил, забылся.
Я просто от этого оттолкнулся char str[] = "blabla";
Вот и подумал что и доступ к элементу тоже будет через двойные кавычки.
coNsept вне форума Ответить с цитированием
Старый 22.02.2011, 21:21   #10
Obey-Kun
Линуксоид
Участник клуба
 
Аватар для Obey-Kun
 
Регистрация: 31.07.2009
Сообщений: 1,403
По умолчанию

Цитата:
А если я записывал значения от 1 до n == 8?
Смотри, если массив объявлен так:
Код:
T my_array[3]
То в нём три элемента, но нумеруются они с нуля: my_array[0], my_array[1] и my_array[2]. Вот и всё.

Цитата:
Правда?.. Мне кажется, что это наоборот делает код более громоздким... Недавно с паскаля на с++ перешёл, первое впечатление - настолько чистый язык! =)
Ну вот смотри, был у тебя код:
Код:
checkStuff();
if(must_do_some_stuff)
    doSomeStuff();
doMoreStuff();
Всё работало нормально. Но ты захотел, чтобы оно сделало что-то ещё:
Код:
checkStuff();
if(must_do_some_stuff)
    doSomeStuff();
    domeSomeOtherStuff();
doMoreStuff();
По отступам получается одно, а по делу другое. Будь тут скобки, ошибки не возникло бы.
Я бы ещё использовал отступы по 4 символа и прилеплял бы начальную скобку ко всему, кроме деклерейшенов функций и классов. Вот, почитай по стилю: http://techbase.kde.org/Policies/Kdelibs_Coding_Style

Цитата:
Как? Я вроде объявлял не строку, а char'овский массив... Строка, как я помню, это string =)
Всё правильно у тебя. Для символа '', для строки "". Строка это не обязательно std::string, это может быть ещё и char* (так называемая C string, массив символов, заканчивающийся нуль-символом).
Я схожу с ума или это глючит реальность?
Jabber ID: obey@obey.su
Obey-Kun вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Access violation at address 00447E73 in modul Project.exe. Read of address 00000057. ArtGrek Общие вопросы Delphi 40 12.03.2011 22:03
"Project 1.exe raised exception class EInvalidPointer with messege 'Invalid pointer operetion'".. DeEgo Помощь студентам 3 28.02.2010 07:51
Project Project1.exe raised exception class EnvalidOP Rock'n'rolla Безопасность, Шифрование 16 20.01.2010 18:39
Access violation at address 00456215 in module Autorun.exe. alexandrov28 Свободное общение 4 30.09.2009 21:41
Unhandled Exception Chazki Общие вопросы Delphi 2 14.04.2007 14:05