Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Сисик
10 / 10 / 6
Регистрация: 12.05.2016
Сообщений: 42
1

Ошибка, скорее всего криво поставил указатели

22.12.2016, 13:56. Просмотров 296. Ответов 2
Метки нет (Все метки)

Вызвано исключение по адресу 0x00007FF6D23A2843 в homework.exe: 0xC0000005: нарушение прав доступа при записи по адресу 0x0000000000000000.
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
#include <iostream>
#include <cmath>
using namespace std;
 
  int LongOfNumber(int a)
  {
    int b = 0;
    while(a != 0)
    {
        a /= 10;
        b++;
    }
    return b;
  }
 
 int main(){
    int a, b, numlong[2];
    cin >> a >> b;
    a = abs(a);
    b = abs(b);
    bool GeneralComapring;
 
    numlong[0] = LongOfNumber(a);
    numlong[1] = LongOfNumber(b);
 
    int* num1 = new int[numlong[0]];
    int* num2 = new int[numlong[1]];
 
    int u = 0;
    while(a != 0)
    {
        num1[u] = a % 10;
        a /= 10;
        u++;
    }
 
    u = 0;
    while(b > 0)
    {
        num2[u] = b % 10;
        b /= 10;
        u++;
    }
 
 
 
    if(numlong[0] >= numlong[1])
    {
        bool* comparing = new bool[numlong[0]];
        comparing = {0};
 
        for(int i = 0; i < numlong[0]; i++)
                {
 
                    for(int j = 0; j < numlong[1]; j++)
                    {
                        if(num1[i] == num2[j])
                        {
                            comparing[i] = 1; //ошибка пробивается тут
                        }
                    
                    }
                }
         for(int i = 0; i < numlong[0]; i++)
         {
              if(comparing[0]&&comparing[i])
              {
                    comparing[0] = 1;
              }else
              {
                    comparing[0] = 0;
              }
        }
        GeneralComapring = comparing[0];
        delete [] comparing;
    }
    else
    {
        bool* comparing = new bool[numlong[0]];
        comparing = { 0 };
        for(int i = 0; i < numlong[1]; i++)
                {
 
                    for(int j = 0; j < numlong[0]; j++)
                    {
                        if(num2[i] == num1[j])
                        {
                            comparing[i] = 1;
                        }
 
                    }
                }
         for(int i = 0; i < numlong[1]; i++)
         {
              if(comparing[0]&&comparing[i])
              {
                    comparing[0] = 1;
              }else
              {
                    comparing[0] = 0;
              }
        }
        GeneralComapring = comparing[0];
        delete [] comparing;
    }
    delete [] num1;
    delete [] num2;
 
    //finish
    if(GeneralComapring)
    {
        cout << "Yes" << endl;
    }
    else
    {
        cout << "No" << endl;
    }
 
    system("pause");
    return 0;
 }
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.12.2016, 13:56
Ответы с готовыми решениями:

Ошибка с освобождением памяти(скорее всего) в среде Dev
Нужна помощь с исправлением кода. По окончанию выполнения программы - перестает отвечать....

Неизвестная ошибка(скорее всего с размером массива\памяти)
Программа должна решать СЛУ методом Гаусса, не нужно конкретных значений, а просто свести к...

Подскажите, где может быть ошибка (структуры)? (скорее всего где-то амперсенд нужен, все вроде проверил)
написать универсальный тип, который представляет точку на плоскости в координатах (х, у) и в...

Программа тупит (но скорее всего я)
Вообщем когда инпут меньше числа 16 все стабильно работает, но когда вводишь 16 или число больше...

Вставлять тирэ после каждого второго символа строки? В коде скорее всего какое-то переполнение происходит
Помогите поправить Результат должэн быть вот таким jf-js-dl-fs-ld-k Спасибо. #include...

2
rangerx
1954 / 1563 / 478
Регистрация: 31.05.2009
Сообщений: 2,913
22.12.2016, 20:04 2
В 50-й и 80-й строках, по вашему мнению, что должно происходить?
1
Сисик
10 / 10 / 6
Регистрация: 12.05.2016
Сообщений: 42
22.12.2016, 23:29  [ТС] 3
ошибка была тут
C++
1
comparing = {0}
надо было сделать цикл что бы присвоить всем елементам 0
C++
1
2
3
4
5
 
for(int i = 0; i < numlong[0]; i++)
{
  comparing[i] = 0;
}
0
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.12.2016, 23:29

Задача на динамическое программирование(скорее всего) (сколькими способами в сумме получить N, без подряд идущих одинаковых чисел)
Дано число N&lt;106 и три числа A,B,C&lt;=N нужно вывести сколькими способами в сумме получить N, без...

Знаю что информация неправильно преобразовывается при записи в файл, скорее всего и при считывании тоже. Как это исправить?
Знаю что информация неправильно преобразовывается при записи в файл, скорее всего и при считывании...

Ошибка данных (скорее всего)
Помогите с кодом - выбивает ошибку в формуле, формула как на картинке. Значения следующие: t=8;...


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

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

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