Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / Непонятная ошибка с нарушением прав доступа при присваивании значений char / 11 сообщений из 11, страница 1 из 1
13.12.2015, 18:38
    #39126766
ukugyul552465
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Непонятная ошибка с нарушением прав доступа при присваивании значений char
Код: plaintext
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.
#include <iostream>
#include <cstdlib>
#include <iomanip>
#include <fstream>
using namespace std;
	int main()
{
	setlocale (0, "");
    
    char *text = "abc";
	char *key = "f";
	char *et = "000";

	int tl = strlen(text);
	int kl = strlen(key);


	for (int i = 0; i < tl; i++)
	{
		for (int j = 0; j < kl; j++)
		{
et[i] = text[i] ^ key[j];
		}
	}
		cout << et;
	cin.get();
	cin.get();
	return 0;
	}



Прерывание программы с ошибками
Первый этап обработки исключения по адресу 0x00C81299 в CrT.exe: 0xC0000005: нарушение прав доступа при записи по адресу 0x00C831B4.
Необработанное исключение по адресу 0x00C81299 в CrT.exe: 0xC0000005: нарушение прав доступа при записи по адресу 0x00C831B4.

Программа "[4716] CrT.exe" завершилась с кодом 0 (0x0).

В чём может быть дело?
...
Рейтинг: 0 / 0
14.12.2015, 02:20
    #39126909
SashaMercury
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Непонятная ошибка с нарушением прав доступа при присваивании значений char
авторВ чём может быть дело?

в том что et строковый литерал
...
Рейтинг: 0 / 0
14.12.2015, 02:21
    #39126910
SashaMercury
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Непонятная ошибка с нарушением прав доступа при присваивании значений char
SashaMercuryавторВ чём может быть дело?

в том что et строковый литерал

хранит адрес строкового литерала
...
Рейтинг: 0 / 0
14.12.2015, 09:13
    #39126968
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Непонятная ошибка с нарушением прав доступа при присваивании значений char
ukugyul552465

В чём может быть дело?

Дела в том, что по стандарту
должно быть


const char *text = "abc";
const char *key = "f";
const char *et = "000";
...
Рейтинг: 0 / 0
14.12.2015, 15:16
    #39127414
ukugyul552465
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Непонятная ошибка с нарушением прав доступа при присваивании значений char
А как в таком случае присвоить значение переменной et?
...
Рейтинг: 0 / 0
14.12.2015, 15:23
    #39127423
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Непонятная ошибка с нарушением прав доступа при присваивании значений char
Код: plaintext
1.
char et[] = "000";
...
Рейтинг: 0 / 0
14.12.2015, 15:31
    #39127435
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Непонятная ошибка с нарушением прав доступа при присваивании значений char
ukugyul552465А как в таком случае присвоить значение переменной et?

Никак. Это невозможно.
...
Рейтинг: 0 / 0
14.12.2015, 17:46
    #39127616
Зимаргл
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Непонятная ошибка с нарушением прав доступа при присваивании значений char
MasterZivukugyul552465А как в таком случае присвоить значение переменной et?

Никак. Это невозможно.
Да ну.

char* et= "const memory";
....
et = new char[100];
et[5]= 'F';

и аналогично
...
Рейтинг: 0 / 0
15.12.2015, 12:38
    #39128355
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Непонятная ошибка с нарушением прав доступа при присваивании значений char
ЗимарглMasterZivпропущено...


Никак. Это невозможно.
Да ну.

char* et= "const memory";
....
et = new char[100];
et[5]= 'F';

и аналогично


а теперь добавить впереди модификатор cost, как я советовал, и повтори...
...
Рейтинг: 0 / 0
15.12.2015, 15:48
    #39128709
Зимаргл
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Непонятная ошибка с нарушением прав доступа при присваивании значений char
MasterZiv,

Это еще зачем? В условии задачи этого не было. И стандарт вполне допускает присваивать неконстантной переменной константу.

Допустимый вариант еще
char et[] = "000";

С виду одно и тоже, а суть разная.
...
Рейтинг: 0 / 0
15.12.2015, 15:57
    #39128724
ukugyul552465
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Непонятная ошибка с нарушением прав доступа при присваивании значений char
Всё ясно, спасибо.
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / Непонятная ошибка с нарушением прав доступа при присваивании значений char / 11 сообщений из 11, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]