Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
Другие темы раздела
C++ Удалить из списка элемент с заданным номером и добавить элементфы, начиная с заданного номера. Помогите написать программу, в которой создаются динамические структуры, я не знаю как :-|:( Записи в линейном списке содержат ключевое поле типа int. Сформиро-вать однонаправленный список. Удалить из него элемент с заданным номером, добавить К элементов, начиная с заданного номера https://www.cyberforum.ru/ cpp-beginners/ thread1090500.html C++ При вводе информации о новой сделке выдавать на экран общую сумму сделок биржи.
Биржа ведет учет заключенных сделок: номер п.п. сторона 1.сторона 2, сумма договора, дата заключения. При вводе информации о новой сделке выдавать на экран общую сумму произведенных сделок, а также записи в заданном интервале времени с подсчетом общей суммы за этот период. Код на С++ Решить тремя способами: 1.массив типа запись 2.файл типа структура 3. Динамический список
C++ Как вызвать функцию родительского класса? https://www.cyberforum.ru/ cpp-beginners/ thread1090491.html
#include <iostream> using namespace std; class foo{ void somefunc(); public: int i; };
C++ Си++ (прединкремент и постинкремент)? 1)float c; int a=1, b=2; c=a/b; Ответ:0,5 Подскажите, если будет вот так: float c; int a=1, b=2; c=(float )a/b; то ответ будет 0? Или также 0,5? А если float не будет, то преобразование не будет? И будет 0? 2) a=3; b=2; c=++a*b++ Ответ будет 8 или 12? Тут с начало, что должно выполняться прединкремент или постинкремент? 3)Кто-нибудь знает ОПЕРАТОР/Ы через... https://www.cyberforum.ru/ cpp-beginners/ thread1090488.html
Подскажите, в тесте некоторые мелочи C++
Укажите формат описания массива: а)тип_элемента имя б)тип_элемента имя В программе только два варианта ответа, какой выбрать они вроде оба правильные, но выбрать можно только один. Какие бывают модификаторы размера? signed или unsigned? Или ещё какие-то бывают? Я знаю, что вот модификаторы знака бывают unsigned и signed. А вот модификаторы...
C++ Определить и вывести объем каждого слоя конуса Имеется неусеченный конус с диаметром основания D и высотой H. Пользователь вводит число K (количество слоев на которые разбивается конус, высота каждого слоя H/K). Определить и вывести объем каждого слоя конуса. https://www.cyberforum.ru/ cpp-beginners/ thread1090458.html
C++ STL. Удаление крайних символов Приветствую. Нужно сделать функцию, который будет удалять крайние символы у строки. void remove_side_chars(std::string& str, std::string const& chrs); Т.е: '##hello world!#####' в итоге превратился в 'hello word' (удалили крайние решетки) Хочу посмотреть вариант максимально извращенный со STL.:D https://www.cyberforum.ru/ cpp-beginners/ thread1090446.html C++ Виртуальные классы и ошибка "Error LNK2001: unresolved external symbol"
Решил перелезть с C# на C++. Ну или по крайней мере немного его подучить для самообразования. В C# есть такая замечательная вещь как интерфейсы. Дошел до интерфейсов класса и застрял. В с++ вроде бы реализуется через абстрактные классы. Ок пишу. class Dom { private: int CountFloors, CountApartments; public:
C++ Сортировка списка с использованием std::sort https://www.cyberforum.ru/ cpp-beginners/ thread1090415.html
Что-то не получается отсортировать целочисленные данные расположенные в списке, компилятор (VS10) жутко ругается. В чем может быть дело? #include <iostream> #include <conio.h> #include <string> #include <list> #include <algorithm> using namespace std;
C++ Перевод строки в дату https://www.cyberforum.ru/ cpp-beginners/ thread1090395.html
Вопрос: есть строка "2013-06-28 19:00:00.000". Как её привести к типу дата? Нужно для последующего сравнения.
C++ Реализация отношения классов типа двунаправленная ассоциация, UML, порядок объявления классов, неполный класс
Доброго времени суток! Осваивая UML, решил реализовать отношение двунаправленной ассоциации по диаграмме: У одного владельца (Person) может быть 0...* машин (Car). У одной машины может быть 0...1 владельцев. Первая попытка не компилируется: class Car;
C++ Создать матрицу из контейнера std::array Есть код: #include <iostream> #include <array> using namespace std; int main () { array <int,5> myarray; return 0; https://www.cyberforum.ru/ cpp-beginners/ thread1090354.html
20 / 19 / 1
Регистрация: 13.08.2012
Сообщений: 779
06.02.2014, 13:47  [ТС] 0

Access violation reading location - C++ - Ответ 5746620

06.02.2014, 13:47. Показов 7114. Ответов 12
Метки (Все метки)

Ответ

с индексами вроде все нормально, проверил, вот полный код:
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
D3DX11_IMAGE_LOAD_INFO ili;
    ZeroMemory(&ili, sizeof(ili));
    ili.BindFlags = 0;
    ili.Height = D3DX11_FROM_FILE;
    ili.Format = DXGI_FORMAT_R8G8B8A8_UNORM;
    ili.Width = D3DX11_FROM_FILE;
    ili.Depth = D3DX11_FROM_FILE;
    ili.FirstMipLevel = 0;
    ili.MipLevels = 1;
    ili.BindFlags = 0;
    ili.CpuAccessFlags = D3D11_CPU_ACCESS_READ | D3D11_CPU_ACCESS_WRITE;
    ili.Usage = D3D11_USAGE_STAGING;
    ili.MiscFlags = 0;
    ili.Filter = D3DX11_FILTER_NONE;
    ili.MipFilter =  D3DX11_FILTER_NONE;
    ili.pSrcInfo = 0;
    
    ID3D11Resource *g_text;
    ID3D11Texture2D *pSrcText2D;
 
    if(FAILED(D3DX11CreateTextureFromFile(g_pd3d11Device, L"1.jpg", &ili, NULL, (ID3D11Resource**)&pSrcText2D, NULL)))
        return 0;
 
    
 
    int numMipLevel = CreateMipMap(pSrcText2D);
 
    D3D11_TEXTURE2D_DESC td;
    pSrcText2D->GetDesc(&td);
 
    ID3D11Texture2D *textArray = 0;
    D3D11_TEXTURE2D_DESC tdArray;
 
    ZeroMemory(&tdArray,sizeof(tdArray));
    tdArray.ArraySize = numMipLevel+1;
    tdArray.Format = td.Format;
    tdArray.Height = td.Height;
    tdArray.Width = td.Width;
    tdArray.CPUAccessFlags = 0;
    tdArray.MiscFlags = 0;
    tdArray.SampleDesc.Count = 1;
    tdArray.SampleDesc.Quality = 0;
    tdArray.Usage = D3D11_USAGE_DEFAULT;
    tdArray.BindFlags = D3D11_BIND_SHADER_RESOURCE;
    tdArray.MipLevels = td.MipLevels;
 
    if(FAILED(g_pd3d11Device->CreateTexture2D(&tdArray, NULL, &textArray)))
        return 0;
 
    for(UINT i = 0; i <= numMipLevel; i++)
    {
        D3D11_MAPPED_SUBRESOURCE ms;
        ZeroMemory(&ms, sizeof(ms));
        if(FAILED(g_pd3d11DeviceContext->Map(g_pMassTextures[i], 0, D3D11_MAP_READ, 0, &ms)))
            break;
    
        g_pd3d11DeviceContext->UpdateSubresource(textArray, D3D11CalcSubresource(0, i, 1), 0, ms.pData, ms.RowPitch, ms.DepthPitch);
 
        g_pd3d11DeviceContext->Unmap(g_pMassTextures[i], 0);
    }
функция
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
int CreateMipMap(ID3D11Texture2D *texture)
{
    D3D11_TEXTURE2D_DESC td;
 
    texture->GetDesc(&td);
 
    UINT width = td.Width;
    UINT height = td.Height;
 
    float numMipLevel = (int)(log10((float)width)/log10((float)2));
 
    if((int)(log10((float)height)/log10((float)2)) > numMipLevel)
        numMipLevel = (int)log10((float)height)/log10((float)2);
 
 
    
    numMipLevel = 1;//специально поставил ограничения пока что
    g_pMassTextures.push_back(texture);
 
 
    for(int i = 1; i <= numMipLevel; i++)
        g_pMassTextures.push_back(CreateTexture2D(g_pd3d11Device, g_pMassTextures[i-1]));
    
 
 
        
    return numMipLevel;
}
еще функция, подозреваю что именно в ней косяк:
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
ID3D11Texture2D* CreateTexture2D(ID3D11Device *pDevice, ID3D11Texture2D *srcText)
{
    D3D11_TEXTURE2D_DESC 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];//буфер текселей новой текстуры
 
    D3D11_MAPPED_SUBRESOURCE ms;
    ZeroMemory(&ms, sizeof(ms));
 
    if(FAILED(g_pd3d11DeviceContext->Map(srcText, 0, D3D11_MAP_READ, 0, &ms)))
        return 0;
 
    XMCOLOR *srcBuffTexels = new XMCOLOR[srcTD.Width * srcTD.Height];//данные цветов исходной текстуры
    
    memcpy(srcBuffTexels, ms.pData, ms.RowPitch * srcTD.Height);
 
    g_pd3d11DeviceContext->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;
 
    ID3D11Texture2D *text;
    
    D3D11_SUBRESOURCE_DATA sd;
    ZeroMemory(&sd, sizeof(sd));
    sd.pSysMem = (void*)dstBuffTexels;
    sd.SysMemPitch = width*4;
    sd.SysMemSlicePitch = width*height*4;
 
    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;
 
    for(int i = 0; i < sizeVBox; i++)
            delete []colorBox[i];
    delete []colorBox;
 
    if(FAILED(pDevice->CreateTexture2D(&td, &sd, &text)))
    {
        delete []dstBuffTexels;
        return 0;
    }
    else
    {
        delete []dstBuffTexels;
        return text;
    }
}
Добавлено через 11 минут
т.е. получается что из загруженной текстуры он нормально данные считывает, а с той что сгенерирована с помощью CreateTexture2D не может считать данные

Вернуться к обсуждению:
Access violation reading location C++
0
Заказать работу у эксперта

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.02.2014, 13:47
Готовые ответы и решения:

Access violation reading location
Помогите пожалуйста! Создаю программу, которая ведет учет данных. В бинарный dat-файл записываются...

Access violation reading location
добрый вечер , что может означать ошибка ? &quot;Exception thrown at 0x00B427CD in...

access violation reading location
access violation reading location такая проблема если вести информацию про двух и больше студентов...

ошибка Access violation reading location 0x00000066
Ошибка : Unhandled exception at 0x100e14cf (msvcr100d.dll) in 3.4.exe: 0xC0000005: Access violation...

12
06.02.2014, 13:47
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.02.2014, 13:47
Помогаю со студенческими работами здесь

Массивы указателей и ошибка Access violation reading location
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; using namespace std; class Number { public: int...

Помогите с ошибкой Access violation reading location 0x1ed1d9f8.
Не могу разобраться с VS.... У меня был хороший, проверенный проект, в котором все хорошо работало...

Exception thrown at 0x77D75BCA (ntdll.dll): 0xC0000005: Access violation reading location 0x0000
Есть задача Есть решение Основное приложение: #include &quot;stdafx.h&quot; #include &lt;stdio.h&gt;...

Ошибка Unhandled exception at 0x001EB509 in Gauss1.exe: 0xC0000005: Access violation reading location 0xCCCCCCD4
Программа должна генерировать и выводить на экран матрицу n x n. Однако, вылетает исключение:...

0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru