Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Оператор цикла http://www.cyberforum.ru/cpp-beginners/thread2202828.html
Вводиться последовательность из N целых чисел, найти разность между произведением нечетных чисел и наибольшим среди отрицательных чисел.
C++ Методом табулирования локализовать корни уравнения
Для заданной функции f(x) методом табулирования локализовать корни уравнения f(x)=0 (т.е. выделить по возможности наименьшие отрезки, содержащие по одному корню) и найти приближенные значения...
Заполнить двумерный массив mхn случайными целыми и определить простое число C++
Заполнить двумерный массив mхn случайными целыми числами из интервала . Определить в массиве простые числа (использовать подпрограмму простое число).
C++ В одномерном массиве найти наименьший положительный элемент В одномерном массиве найти наименьший положительный элемент http://www.cyberforum.ru/cpp-beginners/thread2202799.html
C++ Напечатать значения функции Y на интервале [a,b] с шагом h http://www.cyberforum.ru/cpp-beginners/thread2202796.html
Напечатать значения функции Y на интервале с шагом h.
C++ Вычислить сумму первых N натуральных чисел, делящихся на К
Вычислить: a) сумму первых N натуральных чисел, делящихся на К; b) произведение первых N натуральных чисел, делящихся на К; c) сумму первых делящихся на К натуральных чисел, не превосходящих N;...
C++ Метод золотого сечения C++
помогите пожалуйста дописать прогу так, чтобы можно было писать в консоле mаx или min и находился бы только минимум или максимум, или хотя бы просто чтобы еще максимум находился #include <iostream>...
C++ Цикл Вычислить значения t, соответствующие каждому значению П.5.18.Правил Запрещено размещать задания и решения в виде картинок и других файлов с их текстом. Редактор формул внизу страницы http://www.cyberforum.ru/cpp-beginners/thread2202777.html
C++ Дано текст, содержащий от 2 до 30 слов, в каждом из которых от 2 до 10 латинских букв, между соседними словами http://www.cyberforum.ru/cpp-beginners/thread2202769.html
Определить, сколько слов в тексте состоят из 8 или 9 букв.
C++ Глобальные структуры У меня есть структура aeroflot. Мне нужно чтобы эта структура работала во всех файлах программы. Как это реализовать? http://www.cyberforum.ru/cpp-beginners/thread2202756.html
Shpit
0 / 0 / 1
Регистрация: 15.01.2018
Сообщений: 30
0

Ошибка _BLOCK_TYPE_IS_VALID(pHead->nBlockUse)

28.02.2018, 11:59. Просмотров 739. Ответов 3
Метки (Все метки)

Здравствуйте. Я работаю с таким кодом. При выполнении строк 92-107 программа выдаёт окно с ошибкой. По всей видимости, что-то не так с массивом указателей arrpln. Помогите, пожалуйста, разобраться.
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
#include<iostream>
#include<cstdio>
#include<conio.h>
#include<locale.h>
 
using namespace std;
 
const int N=3;
 
struct PlaneDescr  //оголошення структури
{
char PlaneName[15];
float FlightDistance;
int PlaceNumb;
int EngineNumb;
double DepartureTime;
int FlightHours;
int FlightMinutes;
double ArrivalTime;
 };
 
 PlaneDescr arrplane[N];     //глобальний масив з N структур типу PlaneDescr
 int poisk(int j);  //функція пошуку даних у глобальному масиві
 void print_st(int num); //функція виведення елементів структри з глобального масиву
 PlaneDescr *init_ptr(void); //функція для ініціалізації структури типу PlaneDescr
 void print_ptr(PlaneDescr *);  //Функція виведення елементів структури
 
 
int main()
{
    setlocale (LC_ALL, "Russian");
    int i=0,j, k;
    PlaneDescr *arrpln[N];    //массив покажчиків на структурний тип PlaneDescr
    PlaneDescr *sptr;       //покажчик на структурний тип PlaneDescr
    sptr=arrplane;      //аналогично sptr=&arrplan[0];
    int a=1;
    while (a&&i<N)    //Введенення елементів масиву структур arrplane[N]
{
    cout<<"Введите название самолёта: ";
    cin.getline(sptr->PlaneName, 15);
    cout<<"Введите дальность полёта (через '.', в километрах): ";
    cin>>sptr->FlightDistance;
    cin.ignore();
    cout<<"Введите количество мест: ";
    cin>>sptr->PlaceNumb;
    cin.ignore();
    cout<<"Введите количество двигателей: ";
    cin>>sptr->EngineNumb;
    cin.ignore();
    cout<<"Введите время вылета (через '.'): ";
    cin>>sptr->DepartureTime;
    cin.ignore();
    cout<<"Введите количество часов, проведённых в воздухе: ";
    cin>>sptr->FlightHours;
    cin.ignore();
    cout<<"Введите количество минут, проведённых в воздухе: ";
    cin>>sptr->FlightMinutes;
    cin.ignore();
    cout<<"Введите время прибытия (через '.'): ";
    cin>>sptr->ArrivalTime;
    cin.ignore();
 
    cout<<"\nХотите ввести дополнительную информацию о самолёте? y/n"<<endl;
    char ans=getche();
    cout<<"\n\n";
    if (ans=='n' || ans=='N') a=0;
     sptr++;//переходимо до наступної структури в масиві arrplane[N]
     i++;
   }
 
    cout<<"Вывод значений элементов массива структур arrplane[i] с использованием указателя\n ";
    k=i; sptr=&arrplane[0];
    for(i=0;i<k;i++)
    {
        print_ptr(sptr);
        arrpln[i]=new PlaneDescr; //виділення динамічної пам'яті для структури
        arrpln[i]=sptr;     //ініціалізація елементів локального масиву
        sptr++;
    }
  cout<<"Ввод недостающих элементов массива структур с помощью массива указателей "<<endl;
  for (i=k; i<N; i++)
      arrpln[i]=init_ptr(); //виділення пам'яті для структури у функції
  cout<<"Вывод значений элементов массива структур с использованием массива указателей\n "<<endl;
  for (i=0; i<N; i++)
   { 
       print_ptr(arrpln[i]);
     arrplane[i] = *arrpln[i]; //ініціалізація елементів глобального масиву структур
   }
   cout<<"Вывод первых N-1 значений элементов глобального массива структур"<<endl;
   print_st(N-1);
 
  cout<<"Введите количество мест для поиска первого в массиве структур самолёта: "<<endl;
  cin>>j;
  a=poisk(j);
  if (a!=-1) print_ptr(&arrplane[a]);
     else    printf("Нет таких самолётов");
  for ( i=0; i<N; i++)  delete  arrpln[i]; //звільнення пам'яті в "кучі"
  getch();
  return 0;
}
 int poisk(int j)   //функція пошуку даних у глобальному масиві структур
  {int a=-1;
   for (int i=0; i<N; i++)
    if (arrplane[i].PlaceNumb==j) { a=i;
                                    return a;}
   return a;
  }
 
 void print_st(int num)            //функція для виведення елементів з глобального масиву структур
{
    int i;
    for (i=0; i<num; i++)
    {
        cout<<"   Самолёт "<<arrplane[i].PlaneName<<" летит на расстояние "<<arrplane[i].FlightDistance<<" км,"<<" перевозит "<<arrplane[i].PlaceNumb<<" пассажиров,"<<endl;
        cout<<"имеет "<<arrplane[i].EngineNumb<<" двигателя,"<<" вылетает в "<<arrplane[i].DepartureTime<<", прибывает в "<<arrplane[i].ArrivalTime<<endl;
        cout<<"и находится в воздухе "<<arrplane[i].FlightHours<<" часов "<<arrplane[i].FlightMinutes<<" минут."<<"\n"<<endl;
    }
}
 
 PlaneDescr *init_ptr(void)//функція для ініціалізації струткури типу PlaneDescr
{
    PlaneDescr *spt = new PlaneDescr;      //виділення пам'яті в "кучі"
    cout<<"Введите название самолёта: ";
    cin.getline(spt->PlaneName, 15);
    cout<<"Введите дальность полёта (через '.', в километрах): ";
    cin>>spt->FlightDistance;
    cin.ignore();
    cout<<"Введите количество мест: ";
    cin>>spt->PlaceNumb;
    cin.ignore();
    cout<<"Введите количество двигателей: ";
    cin>>spt->EngineNumb;
    cin.ignore();
    cout<<"Введите время вылета (через '.'): ";
    cin>>spt->DepartureTime;
    cin.ignore();
    cout<<"Введите количество часов, проведённых в воздухе: ";
    cin>>spt->FlightHours;
    cin.ignore();
    cout<<"Введите количество минут, проведённых в воздухе: ";
    cin>>spt->FlightMinutes;
    cin.ignore();
    cout<<"Введите время прибытия (через '.'): ";
    cin>>spt->ArrivalTime;
    cin.ignore();
    return spt;
}
 void print_ptr(PlaneDescr *pdt)  //функція виведення елементів структури
{
    cout<<"   Самолёт "<<pdt->PlaneName<<" летит на расстояние "<<pdt->FlightDistance<<" км,"<<" перевозит "<<pdt->PlaceNumb<<" пассажиров,"<<endl;
    cout<<"имеет "<<pdt->EngineNumb<<" двигателя,"<<" вылетает в "<<pdt->DepartureTime<<", прибывает в "<<pdt->ArrivalTime<<endl;
    cout<<"и находится в воздухе "<<pdt->FlightHours<<" часов "<<pdt->FlightMinutes<<" минут."<<"\n"<<endl;
}


Вернуться к обсуждению:
Ошибка _BLOCK_TYPE_IS_VALID(pHead->nBlockUse)

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

0
Лучшие ответы (1)
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.02.2018, 11:59
Готовые ответы и решения:

Ошибка pHead->nBlockUse
После выполнения программы выскакивает ошибка. Почитал на форумах, что проблема или в деструкторе...

При вызове деструктора вылазит ошибка _BLOCK_TYPE_IS_VALID(pHead->nBlockUse)
Понимаю,что подобный вопрос на форуме поднимался не раз,но разобраться не могу всё равно. Вот...

При вызове деструктора выдается ошибка _BLOCK_TYPE_IS_VALID (pHead->nBlockUse)
Вопрос на форуме поднимался раз 100, но все равно не могу понять в чем проблема. Знаю, что искать...

phead->nblockuse
помогите нейтрализовать ошибку. есть структура struct tim{ WORD wMonth; WORD wDay; WORD...

_BLOCK_TYPE_IS_VALID(pHead->nBlockUse)
Нужна помощь гуру. Искать ошибку тут в коде ненужно, сам все нашёл, мне нужно объяснение почему...

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