Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.78/55: Рейтинг темы: голосов - 55, средняя оценка - 4.78
0 / 0 / 0
Регистрация: 16.09.2020
Сообщений: 3

В чем причина ошибки C6385 "Чтение недопустимых данных?"

16.09.2020, 08:27. Показов 12128. Ответов 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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
int main() 
{
    int n, j, i, k,m;
    cout.precision(4);
    cout.setf(ios::fixed);
    cout << "\nEnter the no. of equations\n";
    cin >> n;
    m = n + 1;
    double** p = new double*[n];
    for ( int count = 0; count < n; count++)
    {
        p[count] = new double[m];  // x[n]
 
    }
    double** x = new double*[n];
    for (int count = 0; count < n; count++)
    {
        x[count] = new double[n];
    }
    cout << "\nEnter the elements:\n";
    for (i = 0; i < n; i++) {
        for (j = 0; j <= n; j++) {
            cin >> p[i][j];
        }
            
    }
        
    for (i = 0; i < n; i++){
        for (k = i + 1; k < n; k++) {
            if (abs(p[i][i]) < abs(p[k][i]))
                for (j = 0; j <= n; j++)
                {
                    double temp = p[i][j];
                    p[i][j] = p[k][j];
                    p[k][j] = temp;
                } 
        }
    }
    cout << "\nThe matrix after Pivotisation is:\n";
    for (i = 0; i < n; i++)
    {
        for (j = 0; j <= n; j++) {
            cout << p[i][j] << setw(16);
            cout << "\n";
        }
    }
    for (i = 0; i < n - 1; i++) {          
        for (k = i + 1; k < n; k++)
        {
            double t = p[k][i] / p[i][i];
            for (j = 0; j <= n; j++)
                p[k][j] = p[k][j] - t * p[i][j];    
        }
    }
    cout << "\n\nThe matrix after gauss-elimination is as follows:\n";
    for (i = 0; i < n; i++)            //print the new matrix
    {
        for (j = 0; j <= n; j++)
            cout << p[i][j] << setw(16);
        cout << "\n";
    }
    for (i = n - 1; i >= 0; i--)                
    {                        
        *x[i] = p[i][n];                
        for (j = i + 1; j < n; j++){
            if (j!= i) {
                x[i] = x[i] - int(( p[i][j] * (*x[j])));
                *x[i] *= (1 / p[i][i]);
            }               
                
        }
                             
    }
    cout << "\nThe values of the variables are as follows:\n";
    for (i = 0; i < n; i++) {
        cout << x[i] << endl;
    }
    delete[] p;
    delete[] x;
    return 0;
Код для решения СЛАУ методом Гаусса. Вроде как компилируется однако не дает финальные значения, относя все ошибки к изначальной матрице.
Она задана динамически и вроде как должно хватать памяти однако компилятор все равно жалуется.
В чем может быть вопрос?
Проблемный кусок кода
C++
1
2
3
4
5
6
7
cout << "\nEnter the elements:\n";
    for (i = 0; i < n; i++) {
        for (j = 0; j <= n; j++) {
            cin >> p[i][j];
        }
            
    }
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
16.09.2020, 08:27
Ответы с готовыми решениями:

В чём причина ошибки при передаче данных?
В общем есть сервис и клиент все работает нормально на простых данных. Требуется передать список интерфейсов. Указал KnownType все вроде...

Чтение недопустимых данных, динамические массивы, типы данных
Добрый день, у меня задание найти обратную матрицу методом Гаусса-Жордана, и на моменте складывание строк матрицы друг с другом, у меня во...

Чтение недопустимых данных, динамические массивы, типы данных
Добрый день, реализую метод интерполяции сплайнами на С++, при подсчете одного из коэффициентов появляется данное сообщение. &quot;...

12
 Аватар для ram876
759 / 456 / 213
Регистрация: 19.12.2016
Сообщений: 1,815
16.09.2020, 08:30
Цитата Сообщение от Sunshine_1 Посмотреть сообщение
j <= n
Попробуйте удалить "="
0
0 / 0 / 0
Регистрация: 16.09.2020
Сообщений: 3
16.09.2020, 08:42  [ТС]
Тогда он не дает записать все переменные

Добавлено через 4 минуты
Скажем на примере 2 ЛАУ
Должно быть 6 переменных однако он обрывает после 4
0
 Аватар для ram876
759 / 456 / 213
Регистрация: 19.12.2016
Сообщений: 1,815
16.09.2020, 08:48
Я написал от балды простую программы и у меня все переменные проходит
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
#include <iostream>
 
using namespace std;
 
int main()
{
    int n = 5;
    int arr[n][n];
    for (int i = 0; i < n; i++) 
    {
        for (int j = 0; j < n; j++) 
        {
            arr[i][j] = 1;
        }
            
    }
    for (int i = 0; i < n; i++) 
    {
        for (int j = 0; j < n; j++) 
        {
            cout << arr[i][j];
        }
        cout << endl;
            
    }
 
    return 0;
}
0
0 / 0 / 0
Регистрация: 16.09.2020
Сообщений: 3
16.09.2020, 08:59  [ТС]
Массив у вас статичный, n=5
Плюс у вас значение присваевается , а в моем случае значение вводятся пользователем
0
 Аватар для ram876
759 / 456 / 213
Регистрация: 19.12.2016
Сообщений: 1,815
16.09.2020, 09:27
Присвоение пользователем или перед компиляцией не имеет значение и не вижу проблем от динамического выделения
Вот:
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
#include <iostream>
 
using namespace std;
 
int main()
{
    int n, m;
    cout << "Enter n and m\n";
    cin >> n >> m;
    int **arr = new int*[n];
    for ( int i = 0; i < n; i++) 
    {
        arr[i] = new int[m]; 
    }
    cout << "Enter numbers\n";
    for (int i = 0; i < n; i++) 
    {
        for (int j = 0; j < m; j++) 
        {
            cin >> arr[i][j];
        }
            
    }
    for (int i = 0; i < n; i++) 
    {
        for (int j = 0; j < m; j++) 
        {
            cout << arr[i][j];
        }
        cout << endl;
            
    }
 
    return 0;
}
0
 Аватар для mathway
17 / 10 / 6
Регистрация: 15.09.2020
Сообщений: 39
16.09.2020, 09:46
Что значит вроде как компилируется? Можно узнать сообщение компилятора о результате компиляции?

Помимо всего прочего, в конце функции
C++
1
main()
вы удаляете лишь динамически выделенные массивы указателей, но не массивы, на которых они ссылаются. В данном примере это не имеет особого значения, ибо после выполнения программы все потребляемые ей ресурсы освобождаются для их дальнейшего использования другими программами,в том числе и выделенные динамически(в куче).
0
Вездепух
Эксперт CЭксперт С++
 Аватар для TheCalligrapher
12937 / 6804 / 1821
Регистрация: 18.10.2014
Сообщений: 17,219
16.09.2020, 09:56
Цитата Сообщение от Sunshine_1 Посмотреть сообщение
Вроде как компилируется однако не дает финальные значения, относя все ошибки к изначальной матрице.
Она задана динамически и вроде как должно хватать памяти однако компилятор все равно жалуется.
Ничего не понял. "Вроде как компилируется" и "компилятор все равно жалуется" - это взаимоисключающие утверждения. Что это значит???

Цитата Сообщение от Sunshine_1 Посмотреть сообщение
Проблемный кусок кода
C++
1
2
3
4
5
6
7
cout << "\nEnter the elements:\n";
    for (i = 0; i < n; i++) {
        for (j = 0; j <= n; j++) {
            cin >> p[i][j];
        }
            
    }
Почему вы решили, что это "проблемный кусок кода"? Я что-то не вижу тут никаких проблем.
0
 Аватар для ram876
759 / 456 / 213
Регистрация: 19.12.2016
Сообщений: 1,815
16.09.2020, 10:00
Цитата Сообщение от TheCalligrapher Посмотреть сообщение
никаких проблем
Цитата Сообщение от TheCalligrapher Посмотреть сообщение
j <= n
Разве тут не выход за пределы?
0
Вездепух
Эксперт CЭксперт С++
 Аватар для TheCalligrapher
12937 / 6804 / 1821
Регистрация: 18.10.2014
Сообщений: 17,219
16.09.2020, 10:02
Цитата Сообщение от ram876 Посмотреть сообщение
Разве тут не выход за пределы?
С чего бы это вдруг? Память выделена для прямоугольного массива размера [n][m], где m = n + 1. То есть по второму индексу можно итерировать до j < m или до j <= n (что то же самое).
1
 Аватар для ram876
759 / 456 / 213
Регистрация: 19.12.2016
Сообщений: 1,815
16.09.2020, 10:05
Цитата Сообщение от TheCalligrapher Посмотреть сообщение
m = n + 1
не заметил, спасибо.
0
 Аватар для mathway
17 / 10 / 6
Регистрация: 15.09.2020
Сообщений: 39
16.09.2020, 10:37
Пожалуйста, предоставьте сообщение о компиляции этого исходника. Также укажите сам компилятор и его версию. И да, с чего вы решили, что проблема именно в прикреплённом вами куске кода?
0
0 / 0 / 0
Регистрация: 17.09.2020
Сообщений: 1
17.09.2020, 05:54
Извиняюсь, почта была утеряна

Компилирует- в том смысле что проходит сборка и он выдает адекватные числа в матрице значений однако ответ выдает неверный
Выдает ошибку- в том смысле что по итогу ответ вообще не тот и в исходнике кода до компиляции он показывает на этот момент как "возможная ошибка", что не мешает ему провести сборку

Добавлено через 6 минут
На это указывает компилятор
Есть далее похожий кусок кода который показывается точно так же

Я пишу на VS 2019 (предположу что последней версии ибо устанавливал недавно).
Ошибка C6385 " "Чтение недопустимых данных из p[i] Доступный обьем для чтения равен "m*8" байт однако считать можно только "16" байт"
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
17.09.2020, 05:54
Помогаю со студенческими работами здесь

Чтение недопустимых данных и переполнение буфера
Жалуется на чтение недопустимых данных на 24 и 55 строках, и на переполнение буфера на 51 и 61 строках. При этом работает без ошибок и не...

В чем причина ошибки
Я решил написать математическую программу (график функции) Создал 2 компонента Image (1 для формулы, 2 для координатной плоскости) 2...

В чем причина ошибки?
помогите разобраться почему выходит ошибка? #include &lt;iostream.h&gt; #include &lt;string.h&gt; #include &lt;conio.h&gt; #include...

В чем причина ошибки?
Код int main() { char arr; scanf(&quot;%s %s&quot;, &amp;arr, &amp;arr); printf(&quot;%s\n\n&quot;, arr);

В чем причина ошибки?
Не понимаю почему не могу вызвать функцию download() Почему-то выдает ошибку Возникло исключение: Exception


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru