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

Динамический массив выдаёт ошибку - C++

Восстановить пароль Регистрация
 
dzrkot
zzzZZZ...
 Аватар для dzrkot
516 / 346 / 53
Регистрация: 11.09.2013
Сообщений: 1,977
14.09.2013, 18:54     Динамический массив выдаёт ошибку #1
Вообщем там прикреплён файл, там вся прога т.к. код сюда писать объёмно. СЛожного по иддее ничего, учусь работать с динамичекскими массивами, вроде всё норм, компилирует, и результат выдаёт, но после этого какая-то ошибка наподобии обращения к несуществующему элементу массива....
Вложения
Тип файла: rar phone.rar (220.5 Кб, 5 просмотров)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.09.2013, 18:54     Динамический массив выдаёт ошибку
Посмотрите здесь:

C++ выдаёт ошибку в составленной программе выдаёт ошибку
C++ Динамический массив на C++(исправить ошибку)
C++ Динамический массив, исправить ошибку
Программа при исполнении выдает ошибку и прерывается! (2-мерный динамический массив) C++
C++ При решении программа выдаёт значение функции, равное 0 или выдаёт ошибку. Что не так?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
14.09.2013, 20:03     Динамический массив выдаёт ошибку #2
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
#include "NewNumber.h"
#include <stdlib.h>
#include <time.h>
#include <iostream>
#include <iomanip>
 
using namespace std;
NewNumber::NewNumber(int a)
//NewNumber::int arrayNum = new int[10];
{
    arrayNum = new int[a];
    
    //void print(int a);
    NewNumber::fillNumber(a);
    NewNumber::print(a);
    
}
 
void NewNumber::print(int a)
{
    cout<<a<<endl;
    for (int i=0;i<a;i++)
    cout<<right<<setw(3)<< i + 1 <<") "<<arrayNum[i]<<"\n"<<endl;
}
 
void NewNumber::fillNumber(int a)
{
srand(time(NULL));
for (int i=0;i<a;i++)
arrayNum[i]=(1+rand()%99);
}
 
NewNumber::~NewNumber()
{
    delete [] arrayNum;//dtor
}
dzrkot
zzzZZZ...
 Аватар для dzrkot
516 / 346 / 53
Регистрация: 11.09.2013
Сообщений: 1,977
15.09.2013, 10:30  [ТС]     Динамический массив выдаёт ошибку #3
а...всё спасибо понял в чём ошибся....))

Добавлено через 10 часов 34 минуты
Другой вопрос, а можно ли сделать этот динамический массив статическим? или это само по себе невозможно?
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
15.09.2013, 10:58     Динамический массив выдаёт ошибку #4
Цитата Сообщение от dzrkot Посмотреть сообщение
Другой вопрос, а можно ли сделать этот динамический массив статическим? или это само по себе невозможно?
Из динамического сделать статический? Просто статический можно, но только не в конструкторе.
dzrkot
zzzZZZ...
 Аватар для dzrkot
516 / 346 / 53
Регистрация: 11.09.2013
Сообщений: 1,977
15.09.2013, 11:03  [ТС]     Динамический массив выдаёт ошибку #5
в хедере я дописываю пере массивом static, в потом в срр я инициализирую сам массив, но это проходило для обычных массивов, а для этого так не получается...
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
15.09.2013, 11:11     Динамический массив выдаёт ошибку #6
Цитата Сообщение от dzrkot Посмотреть сообщение
а для этого так не получается...
Для какого "этого"? Вы что-то там делаете, а потом спришиваете: почему не получается. Ясновидящих тут нет. Хотите получить ответ - покажите код и по нему задайте вопрос.
dzrkot
zzzZZZ...
 Аватар для dzrkot
516 / 346 / 53
Регистрация: 11.09.2013
Сообщений: 1,977
15.09.2013, 11:16  [ТС]     Динамический массив выдаёт ошибку #7
код вы сами приводили выше, и весь файл прикреплён...
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
#include "NewNumber.h"
#include <stdlib.h>
#include <time.h>
#include <iostream>
#include <iomanip>
 
using namespace std;
NewNumber::NewNumber(int a)
 
{
    arrayNum = new int[a];   
    void print(int a);
    NewNumber::fillNumber(a);
    NewNumber::print(a);
    
}
 
void NewNumber::print(int a)
{
    cout<<a<<endl;
    for (int i=0;i<a;i++)
    cout<<right<<setw(3)<< i + 1 <<") "<<arrayNum[i]<<"\n"<<endl;
}
 
void NewNumber::fillNumber(int a)
{
srand(time(NULL));
for (int i=0;i<a;i++)
arrayNum[i]=(1+rand()%99);
}
 
NewNumber::~NewNumber()
{
    delete [] arrayNum;//dtor
}
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
15.09.2013, 11:25     Динамический массив выдаёт ошибку #8
Цитата Сообщение от dzrkot Посмотреть сообщение
код вы сами приводили выше, и весь файл прикреплён...
Там это есть?
Цитата Сообщение от dzrkot Посмотреть сообщение
в хедере я дописываю пере массивом static, в потом в срр я инициализирую сам массив,
dzrkot
zzzZZZ...
 Аватар для dzrkot
516 / 346 / 53
Регистрация: 11.09.2013
Сообщений: 1,977
15.09.2013, 11:28  [ТС]     Динамический массив выдаёт ошибку #9
Что вы от меня сейчас хотите? мне выложить код хедера с припиской static? Я в этом не видел необходимости, т.к. думал что необходимо в срр дописать одну строчку инициализации, чтобы он работал.
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
15.09.2013, 11:29     Динамический массив выдаёт ошибку #10
Цитата Сообщение от dzrkot Посмотреть сообщение
Я в этом не видел необходимости, т.к. думал что необходимо в срр дописать одну строчку инициализации, чтобы он работал.
Продолжнайте думать дальше.
dzrkot
zzzZZZ...
 Аватар для dzrkot
516 / 346 / 53
Регистрация: 11.09.2013
Сообщений: 1,977
15.09.2013, 11:31  [ТС]     Динамический массив выдаёт ошибку #11
Большое спасибо за сарказм.
alsav22
15.09.2013, 11:33
  #12

Не по теме:

Цитата Сообщение от dzrkot Посмотреть сообщение
Большое спасибо за сарказм.
Обращайтесь ещё. Приятно с такими работать...

dzrkot
zzzZZZ...
 Аватар для dzrkot
516 / 346 / 53
Регистрация: 11.09.2013
Сообщений: 1,977
15.09.2013, 11:35  [ТС]     Динамический массив выдаёт ошибку #13
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#ifndef NEWNUMBER_H
#define NEWNUMBER_H
 
 
class NewNumber
{
    public:
        NewNumber(int);
        void print (int);
        void fillNumber(int);
 
    virtual ~NewNumber();
    protected:
    private:
    static unsigned long *arrayNum;
};
 
#endif // NEWNUMBER_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
#include "NewNumber.h"
#include <stdlib.h>
#include <time.h>
#include <iostream>
#include <iomanip>
 
using namespace std;
 
//unsigned long NewNumber::arrayNum .....не знаю как его правильно инициализировать....
 
NewNumber::NewNumber(int a)
{
    arrayNum = new unsigned long[a];
    void print(int a);
    NewNumber::fillNumber(a);
    NewNumber::print(a);
 
}
 
void NewNumber::print(int a)
{
    cout<<a<<endl;
    for (int i=0;i<a;i++)
    cout<<right<<setw(3)<< i + 1 <<") "<<arrayNum[i]<<"\n"<<endl;
}
 
void NewNumber::fillNumber(int a)
{
srand(time(NULL));
for (int i=0;i<a;i++)
arrayNum[i]=(999999999+rand()%9999999999);
}
 
NewNumber::~NewNumber()
{
    delete []arrayNum;//dtor
}
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include <windows.h>
#include "NewNumber.h"
#include <stdlib.h>
#include <ctime>
 
using namespace std;
 
 
int main()
{
    srand(time(NULL));
    int number;
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    cout<<"Введите количество номеров телефонов"<<endl;
    cin>>number;
    NewNumber myPhone(number);
    return 0;
}
Следующий напишет что-то типа , "зачем выкладывать ради этого весь код".
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.09.2013, 12:03     Динамический массив выдаёт ошибку
Еще ссылки по теме:

Динамический массив (найти ошибку) C++
C++ Динамический массив - найти ошибку в коде
Динамический массив: программа выдает ошибку памяти C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
15.09.2013, 12:03     Динамический массив выдаёт ошибку #14
C++
1
unsigned long *NewNumber::arrayNum = NULL; //.....не знаю как его правильно инициализировать....
Yandex
Объявления
15.09.2013, 12:03     Динамический массив выдаёт ошибку
Ответ Создать тему
Опции темы

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