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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 42, средняя оценка - 4.95
}{ottab
14 / 13 / 3
Регистрация: 04.03.2009
Сообщений: 75
#1

Нарушения прав доступа при записи(не в файл). - C++

10.10.2009, 21:29. Просмотров 5063. Ответов 14
Метки нет (Все метки)

Вот такая проблемка есть:
C++
1
2
3
4
5
6
7
8
 char* ret="";
    __asm
    {
        lea esi,ret;
        mov eax,0x34;
        inc esi;
        mov ret[esi],eax
    };
На строке mov ret[esi],eax выдает ошибку
Необработанное исключение в "0x004115a4" в "zaddd.exe": 0xC0000005: Нарушение прав доступа при записи "0x0025fce1".
Помогите пожалуйста.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.10.2009, 21:29
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Нарушения прав доступа при записи(не в файл). (C++):

Нарушения прав доступа при чтении - C++
Добрый день. Возникла проблема: Во время отладки программы возникает ошибка: http://s018.***********/i523/1303/ee/b424aef51e14.png ...

Нарушения прав доступа при чтении - C++
Всем доброй ночи! Пишу курсовую и появилась проблема: нарушения прав доступа при чтении. Проверил отладчиком и нашел где ошибка, но в чем...

Ошибка нарушения прав доступа при выполнении программы - C++
Програмка компилируется, но не запускается. Ошибка: 1000 (0) handle_exceptions: Exception: STATUS_ACCESS_VIOLATION preo 1000 (0)...

Ошибка нарушения прав доступа при чтении по адресу, возникающая при инициализации трехмерного массива - C++
Очень нужна ваша помощь! Я уже не знаю что тут можно сделать. Код части программы, где вылазит ошибка ниже. Коротко о проблеме: я...

Нарушения прав доступа к чтению (работа с файлами) - C++
Пробую реализовать запись в файл: #define _CRT_SECURE_NO_WARNINGS #include <iostream> #include <string> using namespace std; ...

Переворот строки. Необработанное исключение. Нарушения прав доступа - C++
void turn(char c, int step, int size) { if(step < size>>1) { char temp = c; char temp2 = c; c =...

14
odip
Эксперт С++
7157 / 3219 / 59
Регистрация: 17.06.2009
Сообщений: 14,164
10.10.2009, 21:37 #2
А место кто будет выделять в ret ?
И зачем ты пишешь по адресу ret+ret, вместо адреса ret ?
1
}{ottab
14 / 13 / 3
Регистрация: 04.03.2009
Сообщений: 75
10.10.2009, 21:45  [ТС] #3
прислушался к рекомендациям но все равно та же ошибка.
0
odip
Эксперт С++
7157 / 3219 / 59
Регистрация: 17.06.2009
Сообщений: 14,164
10.10.2009, 21:59 #4
А исправленный код где ?
1
CheshireCat
Эксперт С++
2893 / 1242 / 78
Регистрация: 27.05.2008
Сообщений: 3,379
10.10.2009, 22:01 #5
А что ты вообще пытаешься сделать? Потому что приведенный код стреляет по памяти по принципу "пальцем в небо". Естественно, с вероятностью 90% получишь AV, и с вероятностью 10% - просто невоспроизводимые глюки в программе.
1
}{ottab
14 / 13 / 3
Регистрация: 04.03.2009
Сообщений: 75
10.10.2009, 22:04  [ТС] #6
C++
1
2
3
4
5
6
7
8
     char *ret="";
     ret=new char[255];
    __asm
    {
        lea esi,ret;
        mov eax,0x34;
        mov ret[esi],eax
    };
функция memset не вызывает туже ошибку.
0
CheshireCat
Эксперт С++
2893 / 1242 / 78
Регистрация: 27.05.2008
Сообщений: 3,379
10.10.2009, 22:14 #7
Естессно, не вызывает. Еще раз: что ты пытаешься сделать?
1
}{ottab
14 / 13 / 3
Регистрация: 04.03.2009
Сообщений: 75
10.10.2009, 22:17  [ТС] #8
сорри там не не вызывает а вызывает эту ошибку при выполнении самой функции.
А это просто вроде черновика для главной программы.
мне нужно будет перегнать число из флоата в строку. Другово способа я не нашел.
ЗЫ. пишу в студди, может это ее глюк?
0
CheshireCat
Эксперт С++
2893 / 1242 / 78
Регистрация: 27.05.2008
Сообщений: 3,379
10.10.2009, 22:29 #9
Цитата Сообщение от }{ottab Посмотреть сообщение
мне нужно будет перегнать число из флоата в строку. Другово способа я не нашел.
Всего-то? Тьфу, что называется - палишь из пушки по воробьям......
C++
1
2
3
4
5
6
7
8
9
10
11
float f = 123.45; // что в голову взбредет.....
// 1. C
char buf[256];
sprintf(buf, "%10.6f", f);
// 2. C++
stringstream ss;
ss << f;
cout << ss.str() << endl;
// 3. (VC++)
CString str;
str.Format("%8.2f", f);
1
}{ottab
14 / 13 / 3
Регистрация: 04.03.2009
Сообщений: 75
10.10.2009, 22:35  [ТС] #10
все выше перечисленное использовал.
Ошибка не изменилась ну разве что адреса поменялись.
Если б то работало я б не писал кучу всякого лишнего кода кода у мну его и так много.
0
CheshireCat
Эксперт С++
2893 / 1242 / 78
Регистрация: 27.05.2008
Сообщений: 3,379
10.10.2009, 22:58 #11
Цитата Сообщение от }{ottab Посмотреть сообщение
все выше перечисленное использовал.
Ошибка не изменилась ну разве что адреса поменялись.
Тогда засада где-то в другом месте. Приводи минимальный фрагмент кода, позволяющий воспроизвести эту ошибку.
1
odip
Эксперт С++
7157 / 3219 / 59
Регистрация: 17.06.2009
Сообщений: 14,164
10.10.2009, 23:01 #12
2}{ottab
Понимаешь телепаты ушли спать и что именно ты там написал никто не знает, код ты не показываешь. Только ходишь и задаешь один и тот же вопрос - где стена ?
Завтра если кода не будет, то закроем тему для ясности.
0
}{ottab
14 / 13 / 3
Регистрация: 04.03.2009
Сообщений: 75
10.10.2009, 23:01  [ТС] #13
Понимаешь телепаты ушли спать и что именно ты там написал никто не знает, код ты не показываешь. Только ходишь и задаешь один и тот же вопрос - где стена ?
Завтра если кода не будет, то закроем тему для ясности.
Там код в двох файлах. И если я его выложу всем будет впадло это читать а мне коменты писать тоже впадло. Да и я нашел способ обойтись без перевода, длиннее но ничего.
0
Goodwin98
2517 / 813 / 9
Регистрация: 31.05.2009
Сообщений: 1,670
10.10.2009, 23:05 #14
C++
1
2
3
4
5
6
7
         char* ret=new char[255];
        __asm
        {
                mov esi,ret;
                mov eax,0x34;
                mov byte ptr [esi],al
        };
Оно ?
1
}{ottab
14 / 13 / 3
Регистрация: 04.03.2009
Сообщений: 75
10.10.2009, 23:08  [ТС] #15
Да, спасибо. Во я затупил.
Ну и как сказано выше нашел способ обойтись без этого.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.10.2009, 23:08
Привет! Вот еще темы с ответами:

Нарушение прав доступа при записи - C++
void FilterStamp() { char ch; cout&lt;&lt;&quot;Введите Да или Нет: &quot;; scanf_s(&quot;%s&quot;,ch); cout&lt;&lt;endl; l1=first; while(l1!=0)...

Нарушение прав доступа при записи - C++
Пытаюсь написать класс, который бы выполнял инициализацию шрифта в directx и печатал строку на экран. Написал рабочий вариант, где...

Нарушение прав доступа при записи - C++
Привет всем! Извините за тупизм но у меня проблема. #include &lt;iostream&gt; using namespace std; void f(char* str) { int length =...

Нарушение прав доступа при записи - C++
Всем привет, нужно было сделать справочник, atoi(a) выделяет как ошибку, ЧЯДНТ? #include &lt;iostream&gt; #include &lt;fstream&gt; #include...


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

Или воспользуйтесь поиском по форуму:
15
Yandex
Объявления
10.10.2009, 23:08
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru