Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
20 / 19 / 1
Регистрация: 13.08.2012
Сообщений: 779

Исключение Access violation writing location 0x0582D000

17.02.2014, 12:17. Показов 1781. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
При попытке запустить программу на других ПК возникает исключение "Access violation writing location 0x0582D000.", но не на всех ПК на некоторых все работает, у меня тоже исключений нет, ислючение возникает при вызове функции memcpy(), какие возможны варианты ?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
17.02.2014, 12:17
Ответы с готовыми решениями:

Access violation writing location
#include <iostream> using namespace std; template < typename t > void QuickSort( t array, int left,int right) { int i = left; ...

Access violation writing location
Вылетает эта ошибка. В чём может быть проблема? Программа выполняется выводит результат, а после вылетает исключение. #include...

Access violation writing location
Добрый день! на строке ptr = ptr; бросает unhandeled exeption: Access violation writing location, не пойму почему, может уже туплю....

10
 Аватар для stikkas
20 / 20 / 8
Регистрация: 26.01.2014
Сообщений: 56
17.02.2014, 13:28
разная реализация библиотек,
разная разрядность
вообще разные причины могут быть тому виной.
Надо под отладчиком запускать и смотреть что происходит в точке выброса.
0
:)
Эксперт С++
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
17.02.2014, 14:20
Цитата Сообщение от NEvOl Посмотреть сообщение
какие возможны варианты ?
скорее всего попытка записи в недоступную для этих действий память. Т.е. выделили N байт, а пишете больше N. Если покажите код, можно будет сказать точнее.
0
20 / 19 / 1
Регистрация: 13.08.2012
Сообщений: 779
17.02.2014, 16:43  [ТС]
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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
ID3D11Texture2D* CreateTexture2D(ID3D11Texture2D *srcText)
{
 
    D3D11_TEXTURE2D_DESC srcTD;
    ZeroMemory(&srcTD, sizeof(srcTD));
    srcText->GetDesc(&srcTD);
 
    UINT width = srcTD.Width/2;
    if(!width)
        width = 1;
    UINT height = srcTD.Height/2;
    if(!height)
        height = 1;
    float stepU = srcTD.Width/(float)width;
    float stepV = srcTD.Height/(float)height;
    float sUV = stepU*stepV;
 
    int sizeVBox = ceil(stepV);
    int sizeUBox = ceil(stepU);
    struct ColorTexels
    {
        XMCOLOR color;
        float weight;
        ColorTexels()
        {
            weight = 0;
        }
    };
 
    ColorTexels **colorBox = new ColorTexels*[sizeVBox];
    for(int i = 0; i < sizeVBox; i++)
        colorBox[i] = new ColorTexels[sizeUBox];
 
    XMCOLOR *dstBuffTexels = new XMCOLOR[width * height];//буфер текселей новой текстуры
    XMCOLOR *srcBuffTexels = new XMCOLOR[srcTD.Width * srcTD.Height];//данные цветов исходной текстуры
 
 
    D3D11_MAPPED_SUBRESOURCE ms;
    ZeroMemory(&ms, sizeof(ms));
 
    if(FAILED(g_pDeviceContext->Map(srcText, 0, D3D11_MAP_READ, 0, &ms)))
    {
        MessageBox(NULL, L"DeviceContext->Map() - Failed", NULL, NULL);
        return 0;
    }
    
    memcpy(srcBuffTexels, ms.pData, ms.RowPitch * srcTD.Height);//тут ломается
 
    g_pDeviceContext->Unmap(srcText, 0);
 
    for(int i = 0; i < height; i++)
        for(int j = 0; j < width; j++)
        {
            float bU = stepU * j;
            float eU = bU + stepU;
 
            float bV = stepV * i;
            float eV = bV + stepV;
 
            float sumU = bU, sumV = bV;
            float sU, sV;
            dstBuffTexels[width*i+j] = 0;
            
            for(int k = 0; k < sizeVBox; k++)
            {
                for(int q = 0; q < sizeUBox; q++)
                {
                    colorBox[k][q].color = srcBuffTexels[srcTD.Width*((int)bV+k) + (int)bU+q];
                    
                    if((int)(bU+q) + 1 <= stepU + bU)
                        sU = (int)(bU+q) + 1 - sumU;
                    else
                        sU = eU - (int)eU;
 
                    if((int)(bV+k) + 1 <= stepV+ bV)
                        sV = (int)(bV+k) + 1 - sumV;
                    else
                        sV = eV - (int)eV;
 
                    sumU += sU;
 
                    colorBox[k][q].weight = (sU*sV)/sUV;
 
                }
                sumU = bU;
                sumV += sV;
            }
            for(int e = 0; e < sizeVBox; e++)
                for(int r = 0; r <sizeUBox; r++)
                {
                    colorBox[e][r].color.b *= colorBox[e][r].weight;
                    colorBox[e][r].color.r *= colorBox[e][r].weight;
                    colorBox[e][r].color.g *= colorBox[e][r].weight;
                    dstBuffTexels[width*i+j] = dstBuffTexels[width*i+j] + colorBox[e][r].color;
                }
             
        }
 
    delete  []srcBuffTexels;
 
    for(int i = 0; i < sizeVBox; i++)
            delete []colorBox[i];
    delete []colorBox;
 
    ID3D11Texture2D *text = NULL;
    
    D3D11_SUBRESOURCE_DATA sd;
    ZeroMemory(&sd, sizeof(sd));
    sd.pSysMem = (void*)dstBuffTexels;
    sd.SysMemPitch = width*4;
    sd.SysMemSlicePitch = sd.SysMemPitch*height;
 
    D3D11_TEXTURE2D_DESC td;
    ZeroMemory(&td, sizeof(td));
    td.Width = width;
    td.Height = height;
    td.MipLevels = 1;
    td.ArraySize = 1;
    td.SampleDesc.Count = 1;
    td.SampleDesc.Quality = 0;
    td.Usage = D3D11_USAGE_STAGING;
    td.Format = DXGI_FORMAT_R8G8B8A8_UNORM;
    td.BindFlags = 0;
    td.CPUAccessFlags = D3D11_CPU_ACCESS_READ;
    td.MiscFlags = 0;
    
    if(FAILED(g_pDevice->CreateTexture2D(&td, &sd, &text)))
    {
        MessageBox(NULL, L"Create MipLevel - Failed", NULL, NULL);
        return 0;
    }
 
    delete []dstBuffTexels;
    
    return text;
    
}
0
:)
Эксперт С++
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
17.02.2014, 17:06
NEvOl, сравните значения:
C++
1
ms.RowPitch
и
C++
1
srcTD.Width * sizeof(XMCOLOR)
Ну и то, что в ms.pData достаточно данных для чтения.
0
20 / 19 / 1
Регистрация: 13.08.2012
Сообщений: 779
17.02.2014, 17:10  [ТС]
Tulosba, в RowPitch - длина строки в байтах, а
srcTD.Width * sizeof(XMCOLOR) по сути количество элементов на размер каждого ?
0
:)
Эксперт С++
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
17.02.2014, 17:42
NEvOl, какие числовые значения указанных выражений при ошибке?
Надо проверить, что памяти для записи в srcBuffTexels достаточно.
И, честно говоря, мне не оч.понятно зачем копировать из ms.pData в srcBuffTexels.
1
20 / 19 / 1
Регистрация: 13.08.2012
Сообщений: 779
17.02.2014, 18:07  [ТС]
Tulosba, я копирую для более удобного обращения к данным т.к. ms.pData предоставляет указатель, числовые значения не могу посмотреть, т.к. запускаю только экзешник
0
:)
Эксперт С++
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
17.02.2014, 18:30
Цитата Сообщение от NEvOl Посмотреть сообщение
числовые значения не могу посмотреть, т.к. запускаю только экзешник
добавьте отладочный вывод в таком случае.
Цитата Сообщение от NEvOl Посмотреть сообщение
т.к. ms.pData предоставляет указатель
Так ведь и srcBuffTexels тоже является указателем.
0
20 / 19 / 1
Регистрация: 13.08.2012
Сообщений: 779
17.02.2014, 19:08  [ТС]
в момент ошибки возвращает srcTD.Width * sizeof(XMCOLOR) * srcTD.Height - возвращает верное число
ms.RowPitch * srcTD.Height - возвращает больше чем нужно

Добавлено через 3 минуты
Tulosba, можете только появнить почему именно так нужно указывать ?
0
:)
Эксперт С++
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
17.02.2014, 21:58
Цитата Сообщение от NEvOl Посмотреть сообщение
можете только появнить почему именно так нужно указывать ?
Не понял вопроса.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
17.02.2014, 21:58
Помогаю со студенческими работами здесь

Ошибка Access violation writing location
Структура и объявление массива: struct Particle { float X; float Y; float Dx; float Dy; float R; int SegCount; ...

__asm ошибка Access violation writing location
Код ниже выводит следующую ошибку &quot;Unhandled exception at 0x004116a7 in cousach.exe: 0xC0000005: Access violation reading location...

0xC0000005: Access violation writing location 0xFDFDFE11
ошибка, вылетает после запуска программы. Exception thrown at 0x013E1C0A in массивы.exe: 0xC0000005: Access violation writing location...

Код выдает ошибку Access violation writing location
#include&lt;stdio.h&gt; #include&lt;string.h&gt; #include&lt;locale.h&gt; int main() { setlocale(LC_CTYPE, &quot;Russian&quot;); int i, j; char A, k,...

Unhandled exception at 0x0F73DF62 | 0xC0000005: Access violation writing location
Многоуважаемые форумчане, необходима небольшая консультация по следующему коду: #include&lt;iostream&gt; #include&lt;fstream&gt; ...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru