Форум программистов, компьютерный форум, киберфорум
Наши страницы
C для начинающих
Войти
Регистрация
Восстановить пароль
 
Takymi
0 / 0 / 0
Регистрация: 27.09.2016
Сообщений: 14
1

0xC0000005: нарушение прав доступа при чтении по адресу 0x00000003

25.10.2016, 22:17. Просмотров 474. Ответов 1
Метки нет (Все метки)

Доброго времени суток!Возникла проблема при вводе в консоль массива , после ввода элементов консоль вылетает с ошибкой
Вызвано исключение по адресу 0x00161A41 в ConsoleApplication17.exe: 0xC0000005: нарушение прав доступа при чтении по адресу 0x00000003.
Сам код:
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
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <locale.h>
#include <Windows.h>
#include <math.h>
#include <malloc.h>
#include <stdlib.h>
 
int main()
{
    setlocale(LC_ALL, "rus");
    int **a;
    int i, j, n, m;
    int count1 = 0, count2 = 0, temp = 0;
    printf("Введите кол-во строк :\n");
    scanf("%d", &n);
    printf("Введите кол-во столбцов :\n");
    scanf("%d", &m);
    a = (int**)malloc(n*m * sizeof(int));
 
    for (i = 0; i < n; i++)
    {
        for (j = 0; j < m; j++)
        {
            printf("a[%d][%d]=", i, j);
            scanf("%d", (a + i*m + j));
        }
    }
    for (i = 0; i < n; i++)
    {
        for (j = 0; j < m; j++)
        {
            printf("%5d ", *(a + i*m + j));
        }
    }
    for (i = 0; i < n; i++)
    {
13      if (a[i][0]<0)
        {
            count1++;
        }
        if (a[n - 1][m < 0])
        {
            count2++;
        }
    }
    if ((count1 = (n - 1)) && (count2 = (n - 1)))
    {
        for (i = 0; i < n; i++)
        {
            temp = a[i][1];
            a[i][1] = a[n - 1][m];
            a[n - 1][m] = temp;
        }
        for (i = 0; i < n; i++)
            for (j = 0; j < n; j++)
            {
                printf("%d", &a[i][j]);
            }
    }
    else
    {
        for (i = 0; i < n; i++)
            for (j = 0; j < n; j++)
            {
                printf("%d", &a[i][j]);
            }
        printf("Не удовлетворяет условию/n");
    }
 
 
 
 
    system("pause");
    return 0;
}
Спасибо заранее за помощь)
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.10.2016, 22:17
Ответы с готовыми решениями:

Нарушение прав доступа при чтении по адресу
Здраствуйте, задано переписать функцию strspn(canst char *s1, const char *s2) так чтоб она искала...

Нарушение прав доступа при чтении по адресу
#define _CRT_SECURE_NO_WARNINGS // для возможности использования scanf #include &lt;stdio.h&gt;...

Программа тасовки колоды карт: Нарушение прав доступа при чтении по адресу
Всем доброго времени суток. Помогите найти ошибку. Ни на что не ругается, просто выдает ошибку. ...

Вызвано исключение по адресу 0x75DD9845 (ucrtbase.dll) в LABA4.exe: 0xC0000005: нарушение прав доступа при записи по адр
Объясните пожалуйста, почему не работает программа? ( Выдает &quot;вызвано исключение...&quot; По идее она...

Нарушение прав доступа при чтении Си
В общем, стабильно решаю 1 проблему и получаю 2 новых. В конце при вводе товара для поиска выходит...

1
TheCalligrapher
С чаем беда...
Эксперт CЭксперт С++
5085 / 2552 / 704
Регистрация: 18.10.2014
Сообщений: 4,434
25.10.2016, 22:24 2
Цитата Сообщение от Takymi Посмотреть сообщение
Возникла проблема
Если вы собираетесь реализовывать 2D массив, как одномерный массив с пересчетом индексов, то тогда

C
1
2
3
int *a;
...
a = malloc(n * m * sizeof(int));
и далее доступ только через a[i * m + j].

Но тогда доступа через a[i][j] у вас уже не будет. Т.е.

C
1
a[i][0]
- это уже полный бред.

Поэтому вам сначала надо определиться, как вы собрались реализовывать 2D массив. Пока что у вас наблюдается бессмысленая каша из двух никак не связанных друг с другом способов реализации динамического 2D массива.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.10.2016, 22:24

Нарушение прав доступа при чтении
Список. Не могу разобраться с двумя функциями, компилятор не находит синтаксических ошибок, а во...

Ошибка Нарушение прав доступа при чтении
Вот код на Pure C: #include &lt;stdio.h&gt; void getchrs(int a); int ceven(int a); main(void){ int...

Ошибка: нарушение прав доступа при записи по адресу
Надо написать следующую программу: дан символьный массив из 101 элемента. По спецификации %s...


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

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

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