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

происходит переполнение памяти ? - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Написать программу, которая копирует содержимое входного файла в выходной файл http://www.cyberforum.ru/cpp-beginners/thread745257.html
треба: 1. Написати програму, яка копіює вміст вхідного файлу у вихідний; підраховує кількість розділових знаків у тексті; виводить усі слова що мають парну кількість літер; міняє місцями першу і...
C++ Вывод англ. слов(строка) Не могу найти ошибку, прошу помощи. Программа должна из строки английский и русских слов выдавать только русские. С рядом из англ. слов работает нормально, но если идёт сначала русское, а потом... http://www.cyberforum.ru/cpp-beginners/thread745255.html
Конструктор с const char C++
Сегодня взялся за изучение конструкторов , классов и методов защиты и сразу появилось несколько вопросов. class Book { private: char a; char b; public: Book (char a,const char g) {
C++ Представить описание алгоритма и текст программы, позволяющих для заданного пятизначного целого числа подсчитать количество его единиц
Пожалуйста, помогите, нельзя использовать функции объявления, все делать через define
C++ Создать функцию вычисления площади треугольника http://www.cyberforum.ru/cpp-beginners/thread745244.html
Доброго времени суток! Подскажите пожалуйста как доделать программу, не правильно считает площадь Само задание: Создать функцию вычисления площади треугольника по трем заданным сторонам. Функция...
C++ Дан целочисленный массив из 30 элементов. Определить сколько раз в этом массиве встречается каждый элемент массива Здравствуйте. Помогите, пожалуйста, решить задачу. Дан целочисленный массив из 30 элементов. Определить сколько раз в этом массиве встречается каждый элемент массива. подробнее

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

происходит переполнение памяти ? - C++

25.12.2012, 12:48. Просмотров 510. Ответов 3
Метки (Все метки)

Пожалуйста помогите решить проблему:
при компиляции ошибок нет, но при запуске выдает ошибку, я так понимаю происходит переполнение памяти, но как этого избежать?, пробовал delete [](имя массива) - не помогает.
Скрин с ошибкой ниже.

Сам код:
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
#include "stdafx.h"
#include "iostream.h"
#include "windows.h"
#include "time.h"
#include "stdlib.h"
#include "string"
#include "math.h"
 
    int MaxElement(int mas[],int sum)
    {
          int MaxE = mas[0];
          for(int i = 1; i < sum; ++i)
            {
             if (mas[i] > MaxE)
             MaxE = mas[i];        
            }
           char buf[20];
       itoa(MaxE,buf,2);
       std::string str;
       str.insert(0,buf);
       int size=str.size(); 
       str.erase(0,str.size());
       int max=size*sum;
           return max;
    }
 
void start(int bit)
{
   int A;
   int B;
   Sleep(100);
    srand(time(NULL));
    int *bin_mas=new int[bit];
    for(int d=0;d<bit;d++)
    {
        int k,s=0,sum=0;
    k=rand()%10;
    if (k<5)
    {
        k=1;
        bin_mas[d]=k;
        s++;
        sum++;
    }
    else
    {
        k=0;
        s++;
        bin_mas[d]=k;
    }
    }
 
    int *p_mas=new int[sum];
    int g=0;
    for(int db=0;db<bit;db++)
    {
         if(bin_mas[db]==1)
      {
          p_mas[g]=db+1;
          g++;
      }
    }
 
    int *mas_2=new int[sum/2];
    int f=0;
    for(int j=0;j<sum;j++)
        {
      if (p_mas[j]<p_mas[j+1])
      {
      mas_2[f]=p_mas[j+1]-p_mas[j];
      f++;
      }
      if(p_mas[j]==p_mas[j+1])
      {
          mas_2[f]=0;
      f++;
      }
        }
 
           char buf[20];
       itoa(p_mas[0],buf,2);
       std::string mystr;
       mystr.insert(0,buf);
       int size=mystr.size();
       int nm=size;
 
A=MaxElement(p_mas,g);
B=MaxElement(mas_2,f)+nm;
 
    cout<<A<<" ";
    cout<<B<<"\n";
}
 
int main(int argc, char* argv[])
{
      for(int e=0;e<30;e++)
    {
 
cout<<"64 bit"<<"\n";
start(64);
cout<<"\n"<<"----------------------"<<"\n";
cout<<"128 bit"<<"\n";
start(128);
cout<<"\n"<<"----------------------"<<"\n";
cout<<"256 bit"<<"\n";
start(256);
    }
    return 0;
}
0
Миниатюры
происходит переполнение памяти ?  
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru