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

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

Войти
Регистрация
Восстановить пароль
 
Mallbert
2 / 2 / 3
Регистрация: 01.12.2014
Сообщений: 19
#1

Access violation writing location - C++

10.10.2015, 14:13. Просмотров 227. Ответов 5
Метки нет (Все метки)

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
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
#include <iostream>
using namespace std;
template < typename t > 
void QuickSort( t array[], int left,int right)
{
    int i = left;
    int j = right;
    t temp;
    int pivot=array[(left + right) / 2];
    while (i <= j)
    {
        while (array[i] < pivot)
            i++;
        while (array[j] > pivot)
            j--;
        if (i < j)
        {
            temp = array[i];
            array[i] = array[j];
            array[j] = temp;
            i++;
            j--;
        }
    }
    if (left < j)
        QuickSort(array, left, j);
    if (i < right)
        QuickSort(array, i, right);
}
template < typename t >
void Set(t array[],int n)
{
    for (int i = 0; i < n; i++)
    {
        cout << array[i] << "-";
    }
}
class Complex
{
protected:
    struct Comp
    {
        int im;
        int re;
    };
    Comp a;
    Comp *array;
    int size;
 
public:
    void QuickSort(int left, int right)
    {
        int i = left;
        int j = right;
        Comp temp;
        int pivot = array[size / 2].re;
        int pivot1 = array[size / 2].im;
        while (i <= j)
        {
            while (array[i].re > pivot || (array[i].re == pivot && array[i].im > pivot1))
                i++;
            while (array[j].re > pivot || array[j].re == pivot && array[j].im > pivot1)
                j--;
            if (i < j)
            {
                temp = array[i];
                array[i] = array[j];
                array[j] = temp;
                i++;
                j--;
            }
        }
        if (left < j)
            QuickSort( left, j);
        if (i < right)
            QuickSort(i, right);
    }
    void Set(int array[], int n) const
    {
        for (int i = 0; i < n; i++)
        {
            cout << array[i] << "-";
        }
    }
    void Get_size()
    {
        int n;
        cout << "Enter the size of array: ";
        cin >> n;
        this->size = n;
    }
    int Set_size()
    {
        return this->size;
    }
    void Get_array()
    {
        int k;
        int h;
        for (int i = 0; i < size; i++)
        {
            cout << "x[" << i << "](real)= ";
            cin >> k;
            cout << "x[" << i << "](imagine)= ";
            cin >> h;
            array[i].im = k;
            array[i].re = h;
        }
    }
    void Set_array()
    {
        for (int i = 0; i < size; i++)
        {
            cout << "x[" << i << "](real)= ";
            cout<<this->array[i].re ;
            cout << "x[" << i << "](imagine)= ";
            cout << this->array[i].im;
        }
    }
    Complex()
    {
        Get_size();
        Comp *array = new Comp[size];
    }
    ~Complex()
    {
        delete array;
    }
};
 
int main()
{
    Complex *Com;
    Com = new(Complex);
    //(*Com).Get_size();
    (*Com).Get_array();
    (*Com).QuickSort(0,(*Com).Set_size());
    (*Com).Set_array();
 
    /*int n;
    cout << "Enter the size of array: ";
    cin >> n;
    char *array = new char[n];
    for (int i = 0; i < n; i++)
    {
        cout << "x[" << i << "]= ";
        cin >> array[i];
    }
    QuickSort(array, 0, n-1);
    Set(array,n);
    system("pause");*/
    delete Com;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.10.2015, 14:13
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Access violation writing location (C++):

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

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

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

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

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

Исключение Access violation writing location 0x0582D000 - C++
При попытке запустить программу на других ПК возникает исключение &quot;Access violation writing location 0x0582D000.&quot;, но не на всех ПК на...

5
nmcf
5754 / 5065 / 1733
Регистрация: 14.04.2014
Сообщений: 20,749
10.10.2015, 14:19 #2
Где у тебя задаётся size? Надо примерно так вместо строк 120-124:
C++
1
2
3
4
    Complex(int sz = 2): size(sz)
    {
        Comp *array = new Comp[size];
    }
0
Mallbert
2 / 2 / 3
Регистрация: 01.12.2014
Сообщений: 19
10.10.2015, 14:25  [ТС] #3
C++
1
2
3
4
5
6
7
    void Get_size()
    {
        int n;
        cout << "Enter the size of array: ";
        cin >> n;
        this->size = n;
    }
Добавлено через 1 минуту
масив динамический ......
0
nmcf
5754 / 5065 / 1733
Регистрация: 14.04.2014
Сообщений: 20,749
10.10.2015, 15:22 #4
Я вижу, что динамический. Ты выходишь за правую границу.
C++
1
Com->QuickSort(0, Com->Set_size() - 1);
Названия не верные: Set_size() должен устанавливать size, а Get_size() - возвращать. И используй стрелку вместо этих скобок. Хотя не ясно, зачем вообще Complex создавать динамически.
0
Mallbert
2 / 2 / 3
Регистрация: 01.12.2014
Сообщений: 19
10.10.2015, 17:16  [ТС] #5
Ну да з сет гед напутал но она даже не выполняет записи массива (гет ерей)

Добавлено через 7 минут
Comolex динамически потому что есть разница между кучей и стеком если ты понимаешь о чем я
0
nmcf
5754 / 5065 / 1733
Регистрация: 14.04.2014
Сообщений: 20,749
10.10.2015, 17:20 #6
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
    void Get_array()
    {
        for (int i = 0; i < size; i++)
        {
            cout << "x[" << i << "](real)= ";
            cin >> array[i].im;
            cout << "x[" << i << "](imagine)= ";
            cin >> array[i].re;
        }
    }
 
    Complex()
    {
        Get_size();
        array = new Comp[size];
    }
C++
1
2
3
4
    Complex Com;
    Com.Get_array();
    Com.QuickSort(0, Com.Set_size() - 1);
    Com.Set_array();
Добавлено через 43 секунды
Цитата Сообщение от Mallbert Посмотреть сообщение
есть разница между кучей и стеком если ты понимаешь о чем я
Тонко.
1
10.10.2015, 17:20
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.10.2015, 17:20
Привет! Вот еще темы с ответами:

Код выдает ошибку Access violation writing location - C++
#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 - C++
Многоуважаемые форумчане, необходима небольшая консультация по следующему коду: #include&lt;iostream&gt; #include&lt;fstream&gt; ...

Непонятная ошибка "Access violation writing location 0xcdcdcdd5" - C++
#include &lt;iostream&gt; #include &lt;cstdlib&gt; struct Node{ int data; Node *next, *prev; }; typedef Node...

Ошибка "Unhandled exception, Access violation writing location" - C++
Пишу вот так: root-&gt;child1-&gt;parent=root; root-&gt;child2-&gt;parent=root;выходит ошибка Unhandled exception at 0x00073dec in Regul.exe:...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

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