Форум программистов, компьютерный форум CyberForum.ru

Нарушение прав доступа при записи по адресу - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.70
Jacky09
0 / 0 / 0
Регистрация: 15.09.2013
Сообщений: 48
06.04.2014, 13:37     Нарушение прав доступа при записи по адресу #1
Как исправить ошибку??
Первый этап обработки исключения по адресу 0x0F484AF5 (msvcr110d.dll) в ConsoleApplication16.exe: 0xC0000005: нарушение прав доступа при записи по адресу 0xCDCDCDCD.
Необработанное исключение по адресу 0x0F484AF5 (msvcr110d.dll) в ConsoleApplication16.exe: 0xC0000005: нарушение прав доступа при записи по адресу 0xCDCDCDCD.

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
#include <stdio.h>
#include <locale.h>
#include <stdlib.h>
#include <string.h>
 
struct Shoes {      //структура Обувь
    char* articul;  //аритикул
    char* name;     //название
    double price;   //цена
    int amount;     //кол-во
};
 char* a;
 int i;
int main()
{
    setlocale(LC_ALL,"RUS");
    Shoes* store=new Shoes[5];                 //Массив структур
    //заполнение 0-й позиции массива
    strcpy_s(store[0].articul,1,"Д");     
    strcpy_s(store[0].name,14,"Кроссовки Nike");
    store[0].price=6000;
    store[0].amount=5;
     //заполнение 1-й позиции массива
    strcpy_s(store[1].articul,1,"М");     
    strcpy_s(store[1].name,17,"Кроссовки Addidas");
    store[1].price=5500;
    store[1].amount=10;
     //заполнение 2-й позиции массива
    strcpy_s(store[2].articul,1,"П");     
    strcpy_s(store[2].name,14,"Кроссовки Puma");
    store[2].price=5000;
    store[2].amount=5;
    //заполнение 3-й позиции массива
    strcpy_s(store[3].articul,1,"М");     
    strcpy_s(store[3].name,14,"Кроссовки Puma");
    store[3].price=5000;
    store[3].amount=5;
    //заполнение 4-й позиции массива
    strcpy_s(store[4].articul,1,"М");     
    strcpy_s(store[4].name,14,"Бутсы Nike");
    store[4].price=8000;
    store[4].amount=3;
 
    printf("Введите артикл. Например: Д");
    if (scanf_s("%c",&a)!=1)
        printf("Введены некорректные данные");
    for(i=0;i<5;i++)
    {
        if(store[i].articul==a)
        {
            if(store[i].amount!=0)
            {
                printf("В наличии %s,\nЦена %s",store[i].amount,store[i].price);
            }
        }
    }
        return 0;
        getchar();
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.04.2014, 13:37     Нарушение прав доступа при записи по адресу
Посмотрите здесь:

Нарушение прав доступа при записи по адресу C++
C++ Нарушение прав доступа при записи по адресу
Нарушение прав доступа при записи по адресу C++
C++ Исправить ошибку: необработанное исключение по адресу, нарушение прав доступа при записи по адресу
C++ Нарушение прав доступа при записи по адресу
C++ Нарушение прав доступа при записи по адресу
Необработанное исключение по адресу, нарушение прав доступа при записи по адресу C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
zss
Модератор
Эксперт С++
 Аватар для zss
6054 / 5657 / 1828
Регистрация: 18.12.2011
Сообщений: 14,446
Завершенные тесты: 1
06.04.2014, 13:39     Нарушение прав доступа при записи по адресу #2
C++
1
2
3
4
5
6
struct Shoes {      //структура Обувь
    char articul[20];  //аритикул
    char name[100];     //название
    double price;   //цена
    int amount;     //кол-во
};
ValeryS
Модератор
6405 / 4871 / 447
Регистрация: 14.02.2011
Сообщений: 16,167
06.04.2014, 13:41     Нарушение прав доступа при записи по адресу #3
Цитата Сообщение от Jacky09 Посмотреть сообщение
char* articul; *//аритикул
память то кто будет выделять?
Jacky09
0 / 0 / 0
Регистрация: 15.09.2013
Сообщений: 48
06.04.2014, 13:45  [ТС]     Нарушение прав доступа при записи по адресу #4
невозможно преобразовать параметр 1 из "char *[20]" в "char *"
Вт такая штука появляется)
Tulosba
:)
Эксперт С++
4382 / 3225 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
06.04.2014, 13:55     Нарушение прав доступа при записи по адресу #5
Jacky09, Вы не копируйте тупо, что Вам предлагают, а постарайтесь понять в чем проблема.
А проблема в том, что память надо выделять, прежде чем писать в нее что-то.
Цитата Сообщение от Jacky09 Посмотреть сообщение
невозможно преобразовать параметр 1 из "char *[20]" в "char *"
В какой строке какого кода? Ясновидящих тут нет.
Jacky09
0 / 0 / 0
Регистрация: 15.09.2013
Сообщений: 48
06.04.2014, 13:57  [ТС]     Нарушение прав доступа при записи по адресу #6
строки везде, где используется strcpy
zss
Модератор
Эксперт С++
 Аватар для zss
6054 / 5657 / 1828
Регистрация: 18.12.2011
Сообщений: 14,446
Завершенные тесты: 1
06.04.2014, 13:58     Нарушение прав доступа при записи по адресу #7
12 строка
C++
1
char a;
Кстати, для чего переменные a и i сделаны глобальными?
49 строка
C++
1
        if(store[i].articul[0]==a)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.04.2014, 14:02     Нарушение прав доступа при записи по адресу
Еще ссылки по теме:

Нарушение прав доступа при записи по адресу C++
C++ Нарушение прав доступа при записи по адресу 0xCDCDCDCD
C++ Нарушение прав доступа при записи по адресу 0xCDCDCDCD
Вызвано исключение по адресу 0x01361A1E в Matrix 1.0.exe: 0xC0000005: нарушение прав доступа при записи C++

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

Или воспользуйтесь поиском по форуму:
Jacky09
0 / 0 / 0
Регистрация: 15.09.2013
Сообщений: 48
06.04.2014, 14:02  [ТС]     Нарушение прав доступа при записи по адресу #8
а и i вообщем-то просто, поправлю)
а насчет сравнения типа Char должно быть какое-то иное,да?
Yandex
Объявления
06.04.2014, 14:02     Нарушение прав доступа при записи по адресу
Ответ Создать тему
Опции темы

Текущее время: 11:03. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru