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

Куча была повреждена, работа с указателями - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ После каждого столбца, содержащего число а три раза вставить последний столбец http://www.cyberforum.ru/cpp-beginners/thread701685.html
Например а=4 3 4 9 3 4 8 3 7 3 5 3 5 5 2 2 4 5 6 4 2 4 2 4 4 5 4 4 2 преобразовать в 3 4 3 9 3 4 3 8 3 7 3 2 5 3 5 2 5 2
C++ Архивация каталога С++ Нужно произвести архивацию каталога, возможно ли это в С++? Если да помогите кодом пожалуйста. Буду вечно благодарен. http://www.cyberforum.ru/cpp-beginners/thread701670.html
C++ В массиве все нечетные элементы, стоящие ниже минимального элемента массива и стоящие слева от максимального элемента массива, заменить на 0
Требования к программе: 1. Задачу реализовать через процедуры и функции. 2. Количество глобальных переменных минимально. 3. Программа поясняет пользователю все выполняемые им и ею действия. 4. Смысл используемых в программе имен ясен без дополнительных пояснений. 5. Исходный текст программы должен быть откомментирован в достаточной степени. В массиве все нечетные элементы, стоящие ниже...
Определить максимальное время C++
У меня задание, написать программу типо справочной аэропорта. Есть расписание вылетов самолетов, где для каждого рейса храниться номер самолета, тип, пункт назначения и время вылета. Нужно для заданного пункта определить самый поздний рейс. Подскажите как задать время и сравнивать его.
C++ закодировать логическую функцию, и реализовать алгоритм вычисления для нее http://www.cyberforum.ru/cpp-beginners/thread701651.html
Всем доброго времени суток! мне дали задание - оно во вложенной картинке. вот мой код, в нем ошибка, вроде бы связана с адресами...я не уверена что все правильно делаю - преподаватель говорит, что можно обойтись одним массивом, тем, где задается логическая функция, а для формирования наборов и ее вычисления - сделать 2 функции. поможете разобраться?( #include <iostream.h> #include...
C++ Вывод по привилегиям Ребят, у меня задание. Создать прогу с информацией о сообществе программистов. Данная информация содержит в себе имя, профессию, никнаме, а также привилегию. Мне необходимо, чтобы прога предлагала менюшку, где пользователь юзает предложенную команду, и ему выдает информацию. Я разобрался с прогой, сделал ее, однако у меня проблема с привилегией. Как сделать так, чтобы вывести на экран, допустим,... подробнее

Показать сообщение отдельно
maSt
5 / 5 / 1
Регистрация: 28.02.2010
Сообщений: 166

Куча была повреждена, работа с указателями - C++

18.11.2012, 23:57. Просмотров 990. Ответов 3
Метки (Все метки)

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
#include <stdio.h>
#include <stdlib.h>
#include <iostream>
using namespace std;
 
int main()
{
    int iloscproblem;
    cin >> iloscproblem; 
    do 
    {
        int ilosc;
        cin >> ilosc;
        int *coag=(int*)malloc(ilosc*sizeof(int));
        int *koniec=coag+ilosc;
        unsigned int rst=(ilosc+2)%3;
        int *RST=(int*)malloc(rst*sizeof(int));
        for(int *i=coag;i<koniec;i++)
        {
            cin>>*i;
        }
        unsigned int minus=0,counter=1;
        cin >> minus;
        for(int *i=coag+minus,*w=i-1;i<koniec;i++,counter++) //
        {
            if(counter<minus) 
            {
                *(w++)=*i;
            }
            else // 
            {
                counter=0; 
                ilosc--;
            }
        }
        unsigned int iloscpodpr=0;
        cin >> iloscpodpr;
        do
        {
            koniec = coag+ilosc;
            unsigned int dzielnik,modulo;
            cin >> dzielnik;
            cin >> modulo;
            int *rstm=RST; 
         for(int *i=coag,*w=i;i<koniec;i++) 
           {
            if(((*i)%dzielnik)==modulo) 
            {
                *(rstm++)=*i;
            }
            else
            {
                *(w++)=*i; 
            }
           }
         unsigned int meoww=rstm-RST;
 
         ilosc = ilosc - meoww;
         meoww%=3;
           if(meoww) 
           {
               do
               {
                   *(rstm++)=0;
               }
               while(meoww++<3); 
           }// S i T + zera
         unsigned int count=0,l=0;
         for(int *r=RST,*s=r+1,*t=s+1,rev=0;r<rstm;r+=3,s+=3,t+=3) // 
           {
                cout << *r << " "; 
               if (r==RST)
               {
               l = 0;
               }
               else
               {
               l=*s-rev;
               }
            if((rev= *r + (l))>0) // R(i)=S(i)-R(i-1) 
              {
               cout << *t << " ";   // Здесь программа вылетает  с ошибкой "куча была повреждена"
               count++; 
              }
           }
          cout<<endl<<count<<endl;
        }
        while(iloscpodpr--);
         if(RST) free(RST); 
      if(coag) free(coag);
    }
    while (iloscproblem--);
 
return 0;
 
}
Написал программу.
вкратце - нам дают некоторое количество чисел , мы удаляем из данного нам ряда каждое n-ое число ,
потом делим на 3 массива и выводим 3. Но при выводе выдает ошибку.повреждена куча.
может так нельзя выводить указатели или что тут не так?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 19:47. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru