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

Ваш аккаунт

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

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

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

Программа вылетает с ошибкой: Debug assertion failed [C++]

73K
07 ноября 2011 года
Альтер Эго
5 / / 01.10.2011
В общем. Программа работает, выдает правильные результаты, но после выполнения вылетает с такой ошибкой. Так же в окне ошибки указан файл dbgheap.c (строка 1017). В чем дело?
Код:
#include <iostream>
#include <math.h>
#include <string>
#include <windows.h>

using namespace std;

const n=10;

char* rus(char*);

template <class type> class vector
{
    private:
        type* one;
    public:
        vector();
        ~vector();
        void print();
        void run();
        vector<type>& set(type*);
};

template <class type>
vector<type>::vector()
{
    &#111;&#110;e=new type[];
    cout<<rus("Создаю новый объект типа 'вектор'")<<endl;
}

template <class type>
vector<type>::~vector()
{
    cout<<rus("Удаляю объект.\n")
    delete [] one;
    &#111;&#110;e=NULL;
}

template <class type>
vector<type>& vector<type>::set(type* a)
{
    for(int i=0;i<n;i++)
        one=a;
    return *this;
}

template <class type>
void vector<type>::print()
{
    cout<<rus("Вектор:\n");
    for(int i=0;i<n;i++)
        cout<<one<<" ";
    cout<<"\n";
}

template <class type>
void vector<type>::run()
{
    for(int i=0;i<n;i++)
    {
        one*=pow(-1, i);
    }
    cout<<rus("Работаю...\n");
}

char buf[256];
char* rus(char* text)
{
    CharToOem(text, buf);
    return buf;
}

int main()
{
    string type;
    cout<<rus("Введите тип данных вектора:\n");
    cin>>type;
    if (type=="int")
    {
        vector<int> first;
        int* first1;
        first1=new int[];
        for(int i=0;i<n;i++)
            first1=i;
        first=first.set(first1);
        first.run();
        first.print();
    }
    else if (type=="double")
    {
        vector<double> second;
        double* second1;
        second1=new double[];
        for(int i=0;i<n;i++)
            second1=static_cast<double>(i)*5/6; // i*5./6
        second=second.set(second1);
        second.run();
        second.print();
    }
    else if (type=="char")
    {
        vector<char> third;
        char* third1;
        third1=new char[];
        for(int i=0;i<n;i++)
            third1=char(65+i);
        third=third.set(third1);
        third.run();
        third.print();
    }
    system("pause");
    return 0;
}


Заранее спасибо.
277
08 ноября 2011 года
arrjj
1.7K / / 26.01.2011
Если создаёш массив - указывай его размерность.
Код:
#include <iostream>
#include <math.h>
//#include <string>
//#include <windows.h>

using namespace std;

#define n 10

char* rus(char*);

template <class type> class vector
{
    private:
        type* one;
    public:
        vector();
        ~vector();
        void print();
        void run();
        vector<type>& set(type*);
};

template <class type>
vector<type>::vector()
{
    &#111;&#110;e=new type[n];
    cout<<"Создаю новый объект типа \'вектор\'"<<endl;
}

template <class type>
vector<type>::~vector()
{
    cout<<"Удаляю объект.\n";
    delete [] one;
    &#111;&#110;e=NULL;
}

template <class type>
vector<type>& vector<type>::set(type* a)
{
    for(int i=0;i<n;i++)
        one=a;
    return *this;
}

template <class type>
void vector<type>::print()
{
    cout<<"Вектор:\n";
    for(int i=0;i<n;i++)
        cout<<one<<" ";
    cout<<"\n";
}

template <class type>
void vector<type>::run()
{
    for(int i=0;i<n;i++)
    {
        one*=pow(-1, i);
    }
    cout<<"Работаю...\n";
}

/*char buf[256];
char* rus(char* text)
{
    CharToOem(text, buf);
    return buf;
}*/


int main()
{
    string type;
    cout<<"Введите тип данных вектора:\n";
    cin>>type;
    if (type=="int")
    {
        vector<int> first;
        int* first1;
        first1=new int[n];
        for(int i=0;i<n;i++)
            first1=i;
        first=first.set(first1);
        first.run();
        first.print();
    }
    else if (type=="double")
    {
        vector<double> second;
        double* second1;
        second1=new double[n];
        for(int i=0;i<n;i++)
            second1=double(i)*5/6; // i*5./6
        second=second.set(second1);
        second.run();
        second.print();
    }
    else if (type=="char")
    {
        vector<char> third;
        char* third1;
        third1=new char[n];
        for(int i=0;i<n;i++)
            third1=char(65+i);
        third=third.set(third1);
        third.run();
        third.print();
    }
    //system("pause");
    return 0;
}
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог