26.05.2018, 11:04 [+3 UTC]
в нашей команде: 2 791 чел. | участники онлайн: 5 (рекорд: 21)

:: РЕГИСТРАЦИЯ

:: задать вопрос

:: все разделы

:: правила

:: новости

:: участники

:: доска почёта

:: форум

:: блоги

:: поиск

:: статистика

:: наш журнал

:: наши встречи

:: наша галерея

:: отзывы о нас

:: поддержка

:: руководство

Версия системы:
7.47 (16.04.2018)

Общие новости:
13.04.2018, 10:33

Форум:
15.05.2018, 18:49

Последний вопрос:
26.05.2018, 06:42

Последний ответ:
26.05.2018, 07:27

Последняя рассылка:
25.05.2018, 20:15

Писем в очереди:
0

Мы в соцсетях:

Наша кнопка:

RFpro.ru - здесь вам помогут!

Отзывы о нас:
08.08.2010, 22:16 »
Красноперов Денис Олегович
Отличный и своевременный ответ! Большое спасибо, жаль, что пока не могу отблагодарить материально( [вопрос № 179688, ответ № 262770]
23.05.2010, 14:46 »
Мироненко Николай Николаевич
Спасибо Вам большое!!! Пока вопросов нет smile [вопрос № 178548, ответ № 261555]

РАЗДЕЛ • С / С++

Создание программ на языках C и C++.

[администратор рассылки: Андрей Кузнецов aka Dr_Andrew (Старший модератор)]

Лучшие эксперты в этом разделе

Коцюрбенко Алексей aka Жерар
Статус: Мастер-Эксперт
Рейтинг: 240
CradleA
Статус: Профессор
Рейтинг: 113
solowey
Статус: 10-й класс
Рейтинг: 81

Перейти к консультации №:
 

Консультация онлайн # 193274
Раздел: • С / С++
Автор вопроса: andrey.terekhin.96 (Посетитель)
Отправлена: 17.05.2018, 18:48
Поступило ответов: 1

Здравствуйте, уважаемые эксперты! Прошу вас ответить на следующий вопрос:
вот такая вот ошибка на выходе из функции
extern "C" _CRTIMP int __cdecl _CrtIsValidHeapPointer(
const void * pUserData
)
{
if (!pUserData)
return FALSE;

if (!_CrtIsValidPointer(pHdr(pUserData), sizeof(_CrtMemBlockHeader), FALSE))
return FALSE;

return HeapValidate( _crtheap, 0, pHdr(pUserData) );
}

Состояние: Консультация активна (до закрытия: 1 сут. 07 час. 44 мин.)

Ответ # 276537 от solowey (10-й класс)

Здравствуйте, andrey.terekhin.96!
Насколько я вижу проблема в

tvector::~tvector()
{
	//cout<<"y delete1\t";
	///	if (d_v!=NULL){
	//cout<<"y delete3\t";
	delete d_v;
	//	cout<<"y delete2\t";
	//ii=ii+1;
	//cout<<"ii="<<ii;
}

delete d_v; - тут мы пытаемся удалить массив.
По идеи удаления массива должно быть таким - delete [] d_v;


Консультировал: solowey (10-й класс)
Дата отправки: 22.05.2018, 10:31

Рейтинг ответа:

0

[подробно]

Сообщение
модераторам

Отправлять сообщения
модераторам могут
только участники портала.
ВОЙТИ НА ПОРТАЛ »
регистрация »

Мини-форум консультации № 193274

Хватов Сергей
Академик

ID: 20764

# 1

= общий = | 17.05.2018, 19:04 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер

А сообщение об ошибке? Там из стандартных атрибутов только "C"
Остальное должно быть определено через #define То ли забыли что-то включить, то ли версия компилятора не совпадает.
Хотя -- extern и inline одновременно -- рискованно это. можно описать и определить порознь, даже и рядом.

andrey.terekhin.96
Посетитель

ID: 402071

# 2

= общий = | 17.05.2018, 19:30 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер
Хватов Сергей:

в сообщение об ошибке пишит что произошло срабатывани точки остоновки и выкидавает сюда

andrey.terekhin.96
Посетитель

ID: 402071

# 3

= общий = | 17.05.2018, 19:37 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер

// ConsoleApplication83.cpp: определяет точку входа для консольного приложения.
//

#include "stdafx.h"
#include <iostream>
#include <math.h>
#include <cstdlib>
#include <ctime>
#include <stdlib.h>

using namespace std;

class tvector {
public:
int n_vec;
int *d_v;
tvector add_v(int);//сложение
void constrctor_v(int);//создание
//tvector crossproduct();//длина
void getelement_v();//вывод элемента
//int getleng(int);//вывод длины
double getmagnitude();//модуль
tvector mult_ch(int);//умножние на число
int mult_sk(int);//скалярное умножение
tvector mult_vek(int);//векторное умножение
//void exit_v();//умножение на матрицу
void setelement(int);//ввод злемента
void setelement_s(int); //ввод злемента рандом
int setlengh();//ввод длины
~tvector();//диструктор
tvector(const tvector &tvector);//конструктор копирования
tvector();//неявный конструктор
tvector & operator = (const tvector & tvector);//оператор присваивания

};
void tvector::getelement_v()
{
for(int i=0;i<n_vec;i++)
cout <<" d_i=" <<d_v[i]<<"\t";
}
void tvector :: setelement(int n)
{ for (int i=0;i<n;i++){
std::cout<<"vvedite element ";
std::cin>>d_v[i];
}
}
tvector:: tvector(const tvector & tvector)
{
n_vec=tvector.n_vec;
d_v=new int [n_vec];
for(int i=0;i<n_vec;i++)
d_v[i]=tvector.d_v[i];



}
tvector::~tvector()
{
//cout<<"y delete1\t";
/// if (d_v!=NULL){
//cout<<"y delete3\t";
delete d_v;
// cout<<"y delete2\t";
//ii=ii+1;
//cout<<"ii="<<ii;
}
//
tvector& tvector:: operator=(const tvector & tvector)
{
if(this !=&tvector){
delete[]d_v;
n_vec=tvector.n_vec;
d_v=new int[n_vec];
for(int i=0;i<n_vec;i++)
d_v[i]=tvector.d_v[i];
}
else {
}
return *this;

}


tvector:: tvector()
{
int n=1;
n_vec=1;
d_v=new int [n];
}




void tvector :: constrctor_v(int n)
{
delete d_v;
d_v=new int [n];
for (int i=0 ;i<n_vec; i++)
d_v[i]=0;
//setelement (i);
}
void tvector::setelement_s(int n)
{ int x,y;
srand (time(NULL));
for(int i=0;i<n;i++){
x =rand()%10;
y=rand()%100;
if (x>5) y=-y;
// cout<<"y="<<y;
d_v[i]=y;
cout<<"matmodel.d_v[i]="<<d_v[i];
}
}

int tvector::setlengh()
{
cout<<"vvedite razmernost vectora ";
cin>>n_vec;
return n_vec;
}


class TScena

{
public:
TScena
();
~TScena
();

//double gravitaciy();
double atmospere();


};

TScena
::TScena
()
{
}

TScena
::~TScena
()
{
};
class integrator
{
public:
void getmatmodel(tvector);
tvector matmodel;
void dorman_princ();
double hag(double,double,tvector);

};
class TFly
{
public:
tvector x;
TFly();
~TFly();
tvector move();


private:

};

TFly::TFly()
{

}

TFly::~TFly()
{
}

class TAircraft:TFly

{
public:
tvector x;
TAircraft();

~TAircraft();
void move();

private:

};

TAircraft::TAircraft()
{

};

TAircraft::~TAircraft()
{
delete x.d_v;
}

class TForward:TAircraft

{
public:
TForward();
~TForward();

private:

};
void TAircraft::move()
{ integrator A;
A.dorman_princ();

cout<<"y tyt move";
}

TForward::TForward()
{
}

TForward::~TForward()
{
};

class TMissail:TFly
{
tvector x;
//TBins y;
tvector move(tvector);

};


class TBins

{
public:
TBins
();
~TBins
();
double navigaton();
private:

};

TBins
::TBins
()
{
}

TBins
::~TBins
()
{
}
class TGNSS
{

};
double integrator::hag(double h0,double emax,tvector x)
{
double h,a,e,a1,a2;
cout<<"vvedte ohibqu\n";
e=0.1;
//cin>>e;
a=pow((e/emax),(1/5));
a1=a/0.9;

if (5<a1)
{
a1=5;
}
if ( 0.1>a1)
{
a1=0.1;
}

h=(h0/a1);
cout<<"y tyt hag\n";
cout<<h<<"\n";
return h;
}

void integrator::getmatmodel(tvector x)
{
x.setelement_s(6);
matmodel.d_v[0]=x.d_v[3];
matmodel.d_v[1]=x.d_v[4];
matmodel.d_v[2]=x.d_v[5];
matmodel.d_v[6]=x.d_v[6];


cout<<"y tyt matmodel\n";
//return matmodel;
}
void integrator::dorman_princ()
{
double k1,k2,k3,k4,h,h0,emax;int t;
tvector x;
//cout<<"vvedite nachlnay shag\n";
//cin>>h0;
h0=1;
//cout<<"vvadite max ohibqu\n";
//cin>>emax;
emax=0.5;
h=hag(h0,emax,x);
cout<<h;
matmodel.setelement_s(6);
cout<<"y tyt doman princ";
for(int i=0;i<=5;i++)
{
//out<<i;
cout<<"y tyt k";
k1=matmodel.d_v[i];
cout<<"k1=";cout<<k1<<"\n";
k2=matmodel.d_v[i]+(1/5)*h*k1;
cout<<"k2=";cout<<k2<<"\n";
k3=matmodel.d_v[i]+((3/40)*h*k1+(9/40)*h*k2);
cout<<"k3=";cout<<k3<< "\n";
k4=matmodel.d_v[i]+(44/45)*h*k1-(56/12)*h*k2+(32/9)*h*k3;
cout<<"k4=";cout<<k4<<"\n";
x.d_v[i]=matmodel.d_v[i]+h/6*(k1+2*k2+2*k3+k4);
cout<<"x.d_v["<< i <<"]"<<x.d_v[i]<<"\n";
}

}

int _tmain(int argc, _TCHAR* argv[])
{
tvector x0,x;double e,emax;int t,t0,ht;
TAircraft A;
cout<<"vvedite nachalnoe vreme";
cin>>t;
cout<<"vvedete konehnoe vreme";
cin>>t0;
cout<<"vvedete hag";
cin>>ht;
while (t<t0)
{
A.move();
cout<<"y tyt glav";
x.getelement_v();
t=t0+ht;
}

system ("pause");
return 0;
}

Хватов Сергей
Академик

ID: 20764

# 4

= общий = | 17.05.2018, 19:43 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер
andrey.terekhin.96:

Просто ПРОЦИТИРУЙТЕ это сообщение. А код пока не нужен. Тем более без пользы пересказывать сообщение своими словами

andrey.terekhin.96
Посетитель

ID: 402071

# 5

= общий = | 17.05.2018, 20:23 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер
Хватов Сергей:

ConsoleApplication83.exe вызвал срабатывание точки останова. скопровал

andrey.terekhin.96
Посетитель

ID: 402071

# 6

= общий = | 17.05.2018, 20:28 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер
Хватов Сергей:

и выкидывает на dbgheap.c в месте приведенном выше

Хватов Сергей
Академик

ID: 20764

# 7

= общий = | 17.05.2018, 20:55 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер

на исполнении?
Тогда совсем нехороший вопрос: зачем вам локальная функция с линковкой C?
Хотите подменить системную? Так точно не выйдет.

• Отредактировал: Хватов Сергей (Академик)
• Дата редактирования: 17.05.2018, 21:22

andrey.terekhin.96
Посетитель

ID: 402071

# 8

= общий = | 17.05.2018, 21:48 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер
Хватов Сергей:

а где у меня эти функции?

andrey.terekhin.96
Посетитель

ID: 402071

# 9

= общий = | 17.05.2018, 21:51 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер
Хватов Сергей:

я нечего кроме того есть в программе не писал

andrey.terekhin.96
Посетитель

ID: 402071

# 10

= общий = | 17.05.2018, 21:56 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер
Хватов Сергей:

объясните что означает место куда меня выбрасывает и почему это может быть

Хватов Сергей
Академик

ID: 20764

# 11

= общий = | 17.05.2018, 22:20 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер
andrey.terekhin.96:

ну, покажите точную копию сообщения об ошибке. Тогда и разговор продолжится

andrey.terekhin.96
Посетитель

ID: 402071

# 12

= общий = | 17.05.2018, 22:35 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер
Хватов Сергей:

я вам его уже два раза приводил ConsoleApplication83.exe вызвал срабатывание точки останова

andrey.terekhin.96
Посетитель

ID: 402071

# 13

= общий = | 17.05.2018, 22:38 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер
Хватов Сергей:

и все

andrey.terekhin.96
Посетитель

ID: 402071

# 14

= общий = | 17.05.2018, 22:39 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер

не какого номера если вы об этом

andrey.terekhin.96
Посетитель

ID: 402071

# 15

= общий = | 17.05.2018, 22:48 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер
Хватов Сергей:

вот файл внутри скрин экрана точнее не бывает

-----
 Прикрепленный файл:  скачать (DOCX) » [131.0 кб]

solowey
10-й класс

ID: 400484

# 16

= общий = | 18.05.2018, 10:06 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер

Насколько я вижу проблема в

tvector::~tvector()
{
	//cout<<"y delete1\t";
	///	if (d_v!=NULL){
	//cout<<"y delete3\t";
	delete d_v;
	//	cout<<"y delete2\t";
	//ii=ii+1;
	//cout<<"ii="<<ii;
}

delete d_v; - тут мы пытаемся удалить массив. А почему валится пока понят не могу...

P.S. По идеи удаления массива должно быть таким - delete [] d_v;

• Отредактировал: solowey (10-й класс)
• Дата редактирования: 18.05.2018, 10:08

Андрей Кузнецов aka Dr_Andrew
Старший модератор

ID: 17042

# 17

= общий = | 22.05.2018, 09:42 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер
solowey:

Оформите ответ? Приведя в качестве него Ваше сообщение в мини-форуме вопроса.

=====
We have but faith: we cannot know;
For knowledge is of things we see;
And yet we trust it comes from thee,
A beam in darkness: let it grow.
-----
https://www.linkedin.com/in/andreynkuznetsov
https://www.researchgate.net/profile/Andrey_Kuznetsov11
http://www.researcherid.com/rid/K-8824-2014

 

Возможность оставлять сообщения в мини-форумах консультаций доступна только после входа в систему.
Воспользуйтесь кнопкой входа вверху страницы, если Вы зарегистрированы или пройдите простую процедуру регистрации на Портале.

Яндекс Rambler's Top100

главная страница | поддержка | задать вопрос

Время генерирования страницы: 0.20425 сек.

© 2001-2018, Портал RFPRO.RU, Россия
Калашников О.А.  |  Гладенюк А.Г.
Версия системы: 7.47 от 16.04.2018