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

Необработанное исключение в "0x77913ab3" в "x": 0xC0000005: Нарушение прав доступа при чтении "0xdddddddd" - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ латинизатор кириллицы http://www.cyberforum.ru/cpp/thread658113.html
При интернет общении с русской диаспорой в других странах часто возникают проблемы отсутствия кириллицы у зарубежных респондентов,а так же слабой знание иностранных языков у соотечественников.Один из выходов-набор русских слов похожими по начертанию буквами латинского алфавита.Среди прописных букв таких насчитывается одиннадцать:А,В,Е,К,М,Н,О,Р,С,Т,Х.В заданном русском тексте выбрать те слова...
C++ Перестал работать компилятор C++ Доброго времени суток форумчане! Проблема в следующем: Пишу консольный C++ gcc.exe -v 2.95.2 под Windows XP. Целый день работал нормально и неожиданно перестали компилироваться программы, редактор JFE выдает: g++.exe -x c++ -c D:\Create program\C++\SMTP\smtp.cpp -o D:\Create program\C++\SMTP\smtp.o -Wall -fpermissive g++.exe: cannot specify -o with -c or -S and multiple compilations... http://www.cyberforum.ru/cpp/thread657759.html
Литература для работы с памятью процессов C++
Собственно посоветуйте книжек, чтобы научиться работать с памятью процессов. Спасибо.
Посоветуйте пожалуйста компилятор для С/С++, С# C++
Пользовался MS VS, но возникала такая проблема, что на выходе скомпилированную программу можно было запустить только на пк, где установлена MS VS. Я спрашивал на форумах, спрашивал у знакомых, но все варианты попросту не работают или вообще даже не компилируются. Подскажите есть ли компилятор, в котором не будет возникать подобной проблемы ?
C++ Вывести информацию о изображении http://www.cyberforum.ru/cpp/thread657638.html
Добрый день. Помогите кто-нибудь написать программу, использующую сведения о изображении (*.jpeg) и выводящую информацию об этом изображении вида: размер изображения, глубина цвета, количество страниц, плотность, размер палитры, тип сжатия и т.п. заранее, спасибо.
C++ Microsoft Visual C++ 6.0 fatal error LNK1104: cannot open file "nafxcwd.lib" Проект создавал по http://www.pcports.ru/articles/com_1.php см. вложения. далее пробовал компилировать готовый http://www.pcports.ru/articles/com_5.php тоже самое Менял not Using MFC на Using MFC in Shared DDL. Project->Properties->C++->Code Generation менял на Multi-threaded. "nafxcwd.lib"-отсутствует если только в этом проблема плиз выложите. Можно ли откомпилировать в более старших... подробнее

Показать сообщение отдельно
canek244
0 / 0 / 0
Регистрация: 23.09.2012
Сообщений: 3

Необработанное исключение в "0x77913ab3" в "x": 0xC0000005: Нарушение прав доступа при чтении "0xdddddddd" - C++

26.09.2012, 05:45. Просмотров 1120. Ответов 2
Метки (Все метки)

вот код, нужно найти 3 минимальных положительных числа в массиве.
При размере массива больше 950 в конце заполнения рандомным способом вылитает ошибка,
При размере массива больше 15-20 во время окончания отладки, выдаёт ошибку.

Необработанное исключение в "0x77913ab3" в "x": 0xC0000005: Нарушение прав доступа при чтении "0xdddddddd"

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
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
#include "stdafx.h"
 
#include <clocale>
#include <conio.h>
#include <stdio.h>
#include <ctime>
#include <iostream>
 
int random(int, int);   //прототип функции
 
int security();
 
 
int main()
{  setlocale(LC_ALL, "Russian");
   setlocale(LC_ALL, "rus");
   int menu, i, size=0, g, iM, menu1, menu2,temp;
   int max1, max2, max3;           
   int *mas=new  int[size](); 
   int wasEntered=0;  
   int wasNext=0;
   printf("*Программа для нахождение трёх самых маленьких положительных чисел в массиве*\n\n");
 
do
{  printf("1. Ввод элементов массива\n");
   printf("2. Обработка массива\n");
   printf("3. Вывод данных на экран\n");
   printf("-------------------------\n");
   printf("0. Выход.\n");
   printf("Ваш выбор: ");
   menu=security();
 switch(menu)
 {   case 1:
mak:
         iM =0,size=0;         
         printf("\n\n\nВведите размер массива: ");
         iM=security();
 
          if (iM<=0)
          {   printf("\n\aОшибка!\n Размер не может быть отрицательным или равным 0!\n");
              goto mak;    }
 
          if (iM>=901)
          {   printf("\n\aОшибка!\n Размер слишком большой(901=> )!\n");
              goto mak;    }
  
         printf("1. Ручной ввод\n");
         printf("2. Авто-заполнение(рандомом)\n");
         printf("3. Назад\n");
         printf("Ваш выбор: ");
         menu1=security();
        switch(menu1)
        {    case 1: printf ("\n\nВведите целые элементы массива: \n");
                     for(i=0,g=0; g<iM; g++)
                     {    temp=security();
                     if(temp>0)
                     {    mas[i]=temp;   size++; i++;   } }
                     printf("\nГотово!\n");
                     wasEntered=1;    //массив был заполнен
                     wasNext=0;       //обнуление предыдущего запуска
                       break;
 
             case 2: srand(static_cast<unsigned int>(time(NULL)));   //нужен, что-бы рандом был разный
                     for(i=0; i<iM; i++)
                     mas[i]=random(10, 1000); //Рандом
                     printf("\nГотово!\n\n");
                     wasEntered=1; 
                     wasNext=0; 
                     size=iM;
                       break;
 
             case 3:   break;
 
             default: printf("\a\nНеверный пункт меню!\n");     
                       break;         
        }
      break;
   case 2: if (wasEntered==1)   //условие, что массив был заполнен
           {    
               int temp=0;                          //отсортировка массива по возрастанию    
               for (int i=1;  i<size  ;  i++)
               {   for (int j=0;  j<size-i;  j++)
                   {   if (mas[j]> mas[j+1])
                       {   temp=mas[j];           
                           mas[j]= mas[j+1];    
                           mas[j+1]=temp;
               }    }  }
               max1=mas[0], max2=mas[1], max3=mas[2]; 
               printf("\n\nГотово!\n\n");   
               wasNext=1;   }//обработка была выполнена
 
           else 
           {   printf("\a\nВы ещё не заполнили массив!\n");
               printf("Выберите пункт меню 1.\n\n");      }
     break; 
   case 3: if (wasNext) 
           {    menu2=0;
                printf("\n1. Вывод положительного массива\n");
                printf("2. Вывод трёх самых маленьких положительных чисел в массиве\n");
                printf("3. Назад\n");
                printf("Ваш выбор: ");
                menu2=security(); 
 
               switch(menu2)
               {    case 1: printf("\n");
                             for(i=0; i<size; i++)
                             {   printf("%d; ", mas[i]);   }
                              printf("\nГотово!\n");
                                break;
 
                    case 2: if (size==0)
                            printf("\nПоложительных чисел нету!\n");
                            if (size==1)
                            printf("\nПоложительно число: %d.\n",max1);
                           
                            if (size==2)
                            {   printf("\nПервое число: %d.\n",max1);
                                printf("\nВторое число: %d.\n",max2);
                                printf("Больше положительных чисел нету!\n\n");      }
                            if (size>=3)
                            {   printf("\nПервое число: %d.\n", max1); 
                                printf("\nВторое число: %d.\n", max2);   
                                printf("\nТретье число: %d.\n", max3);    } 
                                 break;
 
                    case 3:  break;
 
                    default: printf("\a\nНеверный пункт меню!\n");       
          }    }
          else 
          {   printf("\a\nВы ещё не произвели расчёт!\n");
              printf("Выберите пункт меню 2.\n\n");       }
     break;
   case 0: 
     break; 
   default: printf("\a\nНеверный пункт меню!\n");
       break;     
}}
while(menu!=0);    
}
 
int random(int min, int max)                  //Функция рандом
{   return (min + rand()%(max-min+1));    }   // от min до max включительно
 
int security()            //Функция защиты ввода
{  char bufStub;
   int y=1;
   double poram;
do
{ 
    poram=0; bufStub=0;
    if((scanf("%lf%c",&poram,&bufStub) != 2) || bufStub != '\n')
    {    printf("\n\aОшибка! Возможно вы ввели нецелое число или символы\n");
           
         while(bufStub != '\n')
         scanf("%c",&bufStub);
    }
    else y=0;
}
while(y==1);
return(poram);
}
Я только начинаю разбираться в c++ после паскаля, подскажите где тут ошибка, и как можно оптимизировать код.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 14:40. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru