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

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

Войти
Регистрация
Восстановить пароль
 
cripok
0 / 0 / 0
Регистрация: 24.02.2013
Сообщений: 15
#1

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

12.03.2013, 18:00. Просмотров 238. Ответов 2
Метки нет (Все метки)

Добрый день. Возникла проблема:
Во время отладки программы возникает ошибка:
[IMG]http://s018.***********/i523/1303/ee/b424aef51e14.png[/IMG]
Если убрать строку
C++ (Qt)
1
printf("%sd",vib);
, то ошибка пропадёт, но программа всё равно не будет выполнять условие при vib==1. В чем ошибка?
Вот код:
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
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
#include <conio.h>
 
int chislo_znakov();
int vibor();
void file_create(int x, FILE* y);
 
int main()
{
    int max;
    short int vib;
    FILE *f;
  
    vib=vibor();
    
    printf("%sd",vib);
    if (vib==1)
    {
        max=chislo_znakov();
        char *b=(char *) malloc(max);
        file_create(max,f);
    }
    
 
 getche();
 return 0;   
}
//////////////////////////////////////////////////////////////////////////
int chislo_znakov()
{
    int p;
    printf("Vvedite chislo razryadov(max: 1 000 000): ");
    scanf("%d",&p);
    return p;
}
//////////////////////////////////////////////////////////////////////////
int vibor()
{
    int n;
    printf("Viberite sposob zadaniya chisla: \n");
    printf("1 - avtomaticheskiy (programmniy)\n");
    printf("2 - vruchnuyu (polzovatelskiy)\n");
    printf("Vash vibor: ");
    scanf("%d",&n);
    return n;
}
//////////////////////////////////////////////////////////////////////////
void file_create(int x, FILE* y)
{
    srand(time(NULL));
    y=fopen("C:\\Games\\chislo.txt","w");
    for(int j=0;j<x;j++) 
     fprintf(y,"%d",rand()%10);
    fclose(y);
}
Вот скрин отладки проги:
[IMG]http://s017.***********/i408/1303/79/29e939e86cc6.jpg[/IMG]
Далее выбираем первый вариант:
http://i5.pixs.ru/storage/9/9/3/1png...60_7370993.png
После чего выдаётся та ошибка (первый скрин) и прога зависает.

Добавлено через 4 минуты
Проблема решена: ошибка в формате:
НЕ правильно:
C
1
printf("%sd",vib);
правильно:
C
1
printf("%d",vib);
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.03.2013, 18:00
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Нарушения прав доступа при чтении (C++):

Нарушения прав доступа при чтении - C++
Всем доброй ночи! Пишу курсовую и появилась проблема: нарушения прав доступа при чтении. Проверил отладчиком и нашел где ошибка, но в чем...

Ошибка нарушения прав доступа при чтении по адресу, возникающая при инициализации трехмерного массива - C++
Очень нужна ваша помощь! Я уже не знаю что тут можно сделать. Код части программы, где вылазит ошибка ниже. Коротко о проблеме: я...

Нарушения прав доступа при записи(не в файл). - C++
Вот такая проблемка есть: char* ret=&quot;&quot;; __asm { lea esi,ret; mov eax,0x34; inc esi; mov ret,eax };

Ошибка нарушения прав доступа при выполнении программы - C++
Програмка компилируется, но не запускается. Ошибка: 1000 (0) handle_exceptions: Exception: STATUS_ACCESS_VIOLATION preo 1000 (0)...

Нарушение прав доступа при чтении - C++
Вот пишу игру морской бой, решил написать функцию, которая расставляет корабли, при это необходимо их расставлять через одну клетку друг от...

Нарушение прав доступа при чтении - C++
Собственно код программы: #include &quot;stdio.h&quot; #include &quot;conio.h&quot; #include &quot;math.h&quot; #include &quot;string.h&quot; #include &quot;stdafx.h&quot; ...

2
HighPredator
5541 / 1854 / 346
Регистрация: 10.12.2010
Сообщений: 5,468
Записей в блоге: 2
12.03.2013, 18:02 #2
C++
1
printf("%sd",vib);
Переменная, которую вы выводите имеет тип short int. Ей соответствует спецификатор "%hd" а не тот, что у вас. То есть должно быть так в конечном счете:
C++
1
printf("%hd",vib);
Добавлено через 52 секунды
Цитата Сообщение от cripok Посмотреть сообщение
правильно:
Нет, не правильно.

P.S. и загружайте поясняющие изображения на форум в виде вложений.
0
egor2116
339 / 370 / 42
Регистрация: 20.01.2013
Сообщений: 1,126
12.03.2013, 18:05 #3
Замените
C++
1
printf("%sd",vib);
на
C++
1
printf("%hd",vib);
Добавлено через 1 минуту
пока писал уже ответили сорри за дубляж
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.03.2013, 18:05
Привет! Вот еще темы с ответами:

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

Нарушение прав доступа при чтении - C++
// ConsoleApplication6.cpp: определяет точку входа для консольного приложения. // #include &quot;stdafx.h&quot; #include &quot;stdafx.h&quot; ...

Нарушение прав доступа при чтении - C++
Здравствуйте! На строке catalog-&gt;push_back(*record); Выдает ошибку: Первый этап обработки исключения в &quot;0x00173589&quot; в &quot;Traning2.exe&quot;:...

Нарушение прав доступа при чтении - C++
Имею функцию такого плана: void RenameOldLabels() { USES_CONVERSION; string path, pathAfterRename, pathToDelFile, pathToDelDir,...


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

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

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