Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Выходит ошибка при компиляции

30K
09 сентября 2010 года
Morphling
74 / / 17.01.2010
Доброго времени суток! Я новичок в С++ и создал первую программу, можете помочь с ошибкой, вроде все нормально, но компиль ругается. Хотя это самая легкая прога, но я хотел бы знать в чем я ошибаюсь. Среда Висуал Студио 2008. Заранее благодарен.
Вот код:
Код:
#include "stdafx.h"
#include <iostream.h>
#include <stdio.h>


int main()
{
    int a;
    cout << "Vvedite vaw vozrast /n";
    cin >> a;
    do
    {
        if (a>=18)
        {cout << "Vy soverwennoletnii /n";}
        else {cout << "Vy ne soverwennoletnii /n";}
    }
    while (a>1000);
    return 0;
}
2.1K
09 сентября 2010 года
Norgat
452 / / 12.08.2009
 
Код:
#include <iostream>
(без .h)

и добавь после includ'ов:
 
Код:
using namespace std;
30K
09 сентября 2010 года
Morphling
74 / / 17.01.2010
о спс большое, как я мог такое забыть =)) но при запуске в окне дос выходит надпись "введите ваш возраст /n" почему так? ведь /n это перевод каретки ...
2.1K
09 сентября 2010 года
Norgat
452 / / 12.08.2009
Цитата: Morphling
о спс большое, как я мог такое забыть =)) но при запуске в окне дос выходит надпись "введите ваш возраст /n" почему так? ведь /n это перевод каретки ...



эскейп последовательности начинаются с \, а не с /

30K
09 сентября 2010 года
Morphling
74 / / 17.01.2010
Norgat, спасибо, оч помогли ...
64K
19 сентября 2010 года
evoz23
1 / / 19.09.2010
есть вот такой класс:
class Matrix
{ private: int N;
Vector<T>* str;
public:
Matrix(int _N=3);
~Matrix(void);
Matrix(const Matrix<T>&c);

Vector<T>& operator [] ( int num);
Matrix<T>& operator + (const Matrix<T> &a);
Matrix<T>& operator += (const Matrix<T>& a);
Matrix<T>& operator - (const Matrix<T>& a);
void resize( Matrix<T> &a ,int s_new );
void init( Matrix<T> &a ,Matrix<T> &b,int elem );
Matrix<T>& operator= (Matrix<T> &a);
Matrix<T>& operator * (T a);

friend ostream& operator << (ostream& os,const Matrix<T>& matrix)
{
os << " " <<endl;
for(int i=0;i<matrix.N;i++)
os<<matrix.str<<endl;
return os;
}
friend istream& operator >> (istream& is,Matrix<T>& matrix)
{
for(int i=0;i<matrix.N;i++)
is>>matrix.str;
return is;
}

};

template<class T>
Matrix<T>::Matrix(int _N)
{N=_N;
str=new Vector<T>[N];
for(int i=0;i<N;i++)
str=Vector<T>(i+1);
}
template<class T>
Matrix<T>::~Matrix(void)
{

delete[] str;}
template<class T>
Matrix<T>:: Matrix(const Matrix <T> &c )
{ N=c.N;
str=new Vector<T>[N];
for(int i=0;i<N;i++)
str=c.str;
}
template<class T>
Vector<T>& Matrix<T>:: operator[] (int num)
{return str[num];
}
template<class T>
Matrix<T>& Matrix<T>:: operator= (Matrix<T> &a)
{
if (N==a.N)
{
for(int i=0;i<N;i++)
str=a.str;
}
else
{N=a.N;
delete [] str;
str = new Vector<T>[N];
for(int i=0;i<N;i++)
str=a.str;
}
return *this;
}


template<class T>
void Matrix<T>:: resize( Matrix<T> &a ,int s_new )
{/*Matrix<T> *temp;
temp= new Matrix<T>(s_new);
a=&temp;*/
delete[] a.str;
a.N=s_new;
a.str=new Vector<T>[a.N];
for(int i=0;i<a.N;i++)
a.str=Vector<T>(i+1);

}




и вот такой главный файл:

int _tmain(int argc, _TCHAR* argv[])
{
setlocale(LC_CTYPE, "russian");
cout<<"Эта программа выполняет действия над матрицами особого вида.";
cout<<endl;
int n=3;

Matrix<double> matr_a(n), matr_b(n), matr_c(n),pro(n);
cout<<" Введи размерность матрицы а "<<" ";
cin >> n;
pro.resize(matr_a,n);
pro.resize(matr_b,n);
pro.resize(matr_c,n);
cout<<"Введи матрицу а"<<endl;
//cin>>matr_a;

{ cout<<"Введите максимально-возможный элемент в матрице "<<endl;
int el;
cin>>el;

srand((unsigned) clock());
for( int i=0; i<n; i++)
{
for(int k=0; k<n; k++)
{ matr_a[k]=(rand() % el) + 1;
matr_b[k]= (rand() % el) + 1;
}
}
}
return 0;
}




все нормально компилирует... но при работе выдает ошибку:

ОС Windows инициировала точку останова в matr.exe.

Это может быть вызвано повреждением кучи и указывает на ошибку в matr.exe или в одной из загруженных им DLL.

Возможной причиной так же может быть нажатие пользователем клавиши F12, когда фокус принадлежит matr.exe

Выведенное на экран окно содержит дополнительные данные для диагностики ошибки
HEAP[matr.exe]: Heap block at 00346E70 modified at 00346E88 past requested size of 10


в отладке:
"matr.exe": Загружено: "C:\Documents and Settings\Evo\Мои документы\Visual Studio 2010\Projects\matr\Release\matr.exe", Символы загружены.
"matr.exe": Загружено: "C:\WINDOWS\system32\ntdll.dll", Невозможно найти или открыть файл PDB
"matr.exe": Загружено: "C:\WINDOWS\system32\kernel32.dll", Невозможно найти или открыть файл PDB
"matr.exe": Загружено: "C:\WINDOWS\system32\msvcp100.dll", Символы загружены.
"matr.exe": Загружено: "C:\WINDOWS\system32\msvcr100.dll", Символы загружены.
HEAP[matr.exe]: Invalid Address specified to RtlFreeHeap( 00340000, 00346FB8 )

т.е. не грузит dll, почему может быть??и в чем проблема?? помогите, уже какой день сижу ночами, никак не пойму((( там есть еще один класс, если нужно могу все прислать..
14
21 сентября 2010 года
Phodopus
3.3K / / 19.06.2008
Цитата: evoz23

Ребята,помогите, не знаю что вообще делать, уже 5 день думаю!!!


для начала оформи код

Цитата: evoz23

если нужно могу все прислать..


можно прикрепить архив проекта

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог