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

Подскажите что за ошибка? - C++

Восстановить пароль Регистрация
 
1ые
1 / 1 / 0
Регистрация: 19.01.2013
Сообщений: 98
23.01.2013, 19:03     Подскажите что за ошибка? #1
Invalid allocation size: 4294967295 bytes.
Выдает такую ошибку не подскажите в чем может быть дело, в каких случаях такие выскакивают , в программе используеться динамическое распределение памяти.Может из за этого?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
coloc
погромист
 Аватар для coloc
409 / 245 / 15
Регистрация: 27.08.2012
Сообщений: 550
Завершенные тесты: 1
23.01.2013, 19:32     Подскажите что за ошибка? #2
Слишком большой объем выделенной памяти
1ые
1 / 1 / 0
Регистрация: 19.01.2013
Сообщений: 98
23.01.2013, 19:54  [ТС]     Подскажите что за ошибка? #3
Ничего не исправлял а программа начала компилироваться?
теперь вообще ничего не понимаю.
Кто нибудь сталкивался? может есть варианты?
coloc
погромист
 Аватар для coloc
409 / 245 / 15
Регистрация: 27.08.2012
Сообщений: 550
Завершенные тесты: 1
23.01.2013, 19:59     Подскажите что за ошибка? #4
Выложите код

Добавлено через 3 минуты
Вот, почитайте http://www.cplusplus.com/forum/beginner/33861/
1ые
1 / 1 / 0
Регистрация: 19.01.2013
Сообщений: 98
23.01.2013, 20:01  [ТС]     Подскажите что за ошибка? #5
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
#ifndef ARRAY1_H
#define ARRAY1_H
#include <iostream>
using namespace std;
class Array
{
    friend ostream & operator<<(ostream &, const Array &);
    friend istream & operator>>(istream &, Array &);
    public:
        Array(int = 10);
        Array(const Array &);
        ~Array();
        int getsize() const;
        const Array &operator=(const Array &);
 
        int operator == (const Array &) const;
        int operator != (const Array &) const;
 
        int &operator[] (int);
        static  int getArrayCount();
 
    private:
        int *ptr;
        int size;
        static int ArrayCount;
};
#endif ARRAY1_H
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
#include <iostream>
#include <cstdlib>
#include <assert.h>
#include <Array.h>
int Array::ArrayCount = 0;
Array::Array(int asize)
{
    ++ArrayCount;
    size = asize;
    ptr = new int[size];
    assert(ptr !=0 );
    for (int i = 0; i < size; i++)
        ptr[i] = 0;
}
Array::Array(const Array& init)
{
    ArrayCount++;
    size = init.size;
    ptr = new int[size];
    assert(ptr != 0);
    for (int i = 0; i < size;i++)
    ptr[i] = init.ptr[i];
}
Array::~Array()
{
    --ArrayCount;
    delete [] ptr;
}
int Array::getsize() const
{
    return size;
}
const Array & Array::operator= (const Array &rig)
{
    if (&rig != this)
    {
        delete [] ptr;
        size = rig.size;
        ptr = new int[size];
        assert(ptr != 0);
 
        for (int i = 0; i < size; i++)
        {
            ptr[i] = rig.ptr[i];
        }
    }
    return *this;
}
int Array::operator ==(const Array &rig) const
{
    if (size != rig.size)
        return 0;
    for (int i = 0; i < size; i++)
        if (ptr[i] != rig.ptr [i])
            return 0;
    return 1;
}
int Array::operator != (const Array &rig) const
{
    if (size != rig.size)
        return 1;
    for (int i = 0; i < size; i++)
        if(ptr[i] != rig.ptr[i])
            return 1;
    return 0;
}
int &Array::operator [] (int subscript)
{
    assert(0 <= subscript && subscript < size);
    return ptr[subscript];
}
int Array::getArrayCount ()
{
    return ArrayCount;
}
istream &operator >> (istream & input, Array &a)
{
    for (int i = 0; i < a.size; i++)
        input >> a.ptr[i];
 
    return input;
}
ostream &operator << (ostream & output, const Array &a)
{
    for (int i = 0; i < a.size; i++)
    {
        output << a.ptr[i] << ' ';
    if (((i+1) & 10 ) == 0)
        output << endl;
    }
    
    return output;
}
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
#include <iostream>
#include <Array.h>
using namespace std;
int main()
{
    cout << "Number create arrays: " << Array::getArrayCount() << endl;
    Array integers1(7), integers2;
    cout << "Number create arrays: " << Array::getArrayCount() << endl;
    cout << "Size of array integer1= " << integers1.getsize() << endl << "Array after setting initials values: " 
        << endl << integers1 << endl;
 
    cout << "Size of Array integers2:" << integers2.getsize() << endl << "Array after setting initials values: " 
        << endl << integers2 << endl;
 
    cout << "Enter 17 values: " << endl;
    cin >> integers1 >> integers2;
    cout << "Adter enter Arrays conteins: " <<
        endl << "integers1: " << integers1 <<
        endl << "integers2: " << integers2 << endl;
 
    if (integers1 != integers2)
        cout << "They is not equal" << endl;
 
    Array integers3(integers1);
 
    cout << endl << "Size of integers3: " << integers3.getsize() << endl << "Values of integers3: " <<
        integers3 << endl;
    if (integers1 == integers2)
        cout << "they equal" << endl;
    cout << "integers1[5] equal: " << integers1[5] << endl;
 
    integers1[5] = 1000;
 
    cout<< integers1[5] << endl;
    /*integers1[15] = 1000;*/
    system("pause");
    return 0;
Yandex
Объявления
23.01.2013, 20:01     Подскажите что за ошибка?
Ответ Создать тему
Опции темы

Текущее время: 13:30. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru