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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.70
Jacky09
0 / 0 / 0
Регистрация: 15.09.2013
Сообщений: 48
#1

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

06.04.2014, 13:37. Просмотров 1672. Ответов 7
Метки нет (Все метки)

Как исправить ошибку??
Первый этап обработки исключения по адресу 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();
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.04.2014, 13:37
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Нарушение прав доступа при записи по адресу (C++):

Необработанное исключение по адресу, нарушение прав доступа при записи по адресу - C++
вот само задание: Авиарейсы (номер рейса, пункт назначения, время вылета, дата вылета, стоимость билета, количество мест). Выбор по дате...

Исправить ошибку: необработанное исключение по адресу, нарушение прав доступа при записи по адресу - C++
Помогите, пожалуйста, исправит ошибку. Необработанное исключение по адресу 0x77D88E19 (ntdll.dll) в Lab11.exe: 0xC0000005: нарушение...

Нарушение прав доступа при записи по адресу - C++
Форум предварительно прочитал, но нужной информации не нашел. :( Суть задания: заполнить с клавиатуры двухмерный массив из целых...

Нарушение прав доступа при записи по адресу - C++
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;cstdlib&gt; using namespace std; struct worker { char *fio; char *dolzh; ...

Нарушение прав доступа при записи по адресу - C++
Функция не дописана. Исключение находит в этой begin-&gt;elem.arrint = s; нарушение прав доступа при записи по адресу 0xCDCDCDCD. Работаю...

Нарушение прав доступа при записи по адресу - C++
Будьте добры подскажите, есть занятная функция которая подгружает из файлика данные, Необработанное исключение по адресу 0x50C6BBC2...

7
zss
Модератор
Эксперт С++
6403 / 5969 / 1945
Регистрация: 18.12.2011
Сообщений: 15,384
Завершенные тесты: 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;     //кол-во
};
1
ValeryS
Модератор
6653 / 5062 / 470
Регистрация: 14.02.2011
Сообщений: 16,926
06.04.2014, 13:41 #3
Цитата Сообщение от Jacky09 Посмотреть сообщение
char* articul; *//аритикул
память то кто будет выделять?
1
Jacky09
0 / 0 / 0
Регистрация: 15.09.2013
Сообщений: 48
06.04.2014, 13:45  [ТС] #4
невозможно преобразовать параметр 1 из "char *[20]" в "char *"
Вт такая штука появляется)
0
Tulosba
:)
Эксперт С++
4396 / 3232 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
06.04.2014, 13:55 #5
Jacky09, Вы не копируйте тупо, что Вам предлагают, а постарайтесь понять в чем проблема.
А проблема в том, что память надо выделять, прежде чем писать в нее что-то.
Цитата Сообщение от Jacky09 Посмотреть сообщение
невозможно преобразовать параметр 1 из "char *[20]" в "char *"
В какой строке какого кода? Ясновидящих тут нет.
1
Jacky09
0 / 0 / 0
Регистрация: 15.09.2013
Сообщений: 48
06.04.2014, 13:57  [ТС] #6
строки везде, где используется strcpy
0
zss
Модератор
Эксперт С++
6403 / 5969 / 1945
Регистрация: 18.12.2011
Сообщений: 15,384
Завершенные тесты: 1
06.04.2014, 13:58 #7
12 строка
C++
1
char a;
Кстати, для чего переменные a и i сделаны глобальными?
49 строка
C++
1
        if(store[i].articul[0]==a)
0
Jacky09
0 / 0 / 0
Регистрация: 15.09.2013
Сообщений: 48
06.04.2014, 14:02  [ТС] #8
а и i вообщем-то просто, поправлю)
а насчет сравнения типа Char должно быть какое-то иное,да?
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.04.2014, 14:02
Привет! Вот еще темы с ответами:

Нарушение прав доступа при записи по адресу - C++
Здрасте :) Такая задача, нужно генерировать 2d массив с входных параметров(размер). Я делаю так: Обьявление private:

Нарушение прав доступа при записи по адресу - C++
Нужно просуммировать двухмерный динамический массив. Если я ввожу a1 &gt;= b1 то программа работает, а если ввожу a1&lt; b1 например 1,3...

Нарушение прав доступа при записи по адресу 0xCDCDCDCD - C++
возникла такая вот ошибка: Вызвано исключение по адресу 0x0F2C398A (sfml-graphics-d-2.dll) в JustPlatformer.exe: 0xC0000005: нарушение...

Нарушение прав доступа при записи по адресу 0xCDCDCDCD - C++
#include &lt;iostream&gt; #include &lt;cstdlib&gt; using namespace std; void create(int**, int, int); void tp(int **, int, int **, int); ...


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

Или воспользуйтесь поиском по форуму:
8
Yandex
Объявления
06.04.2014, 14:02
Ответ Создать тему
Опции темы

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