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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
dzrkot
zzzZZZ...
519 / 349 / 53
Регистрация: 11.09.2013
Сообщений: 1,998
#1

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

14.09.2013, 18:54. Просмотров 432. Ответов 13
Метки нет (Все метки)

Вообщем там прикреплён файл, там вся прога т.к. код сюда писать объёмно. СЛожного по иддее ничего, учусь работать с динамичекскими массивами, вроде всё норм, компилирует, и результат выдаёт, но после этого какая-то ошибка наподобии обращения к несуществующему элементу массива....
0
Вложения
Тип файла: rar phone.rar (220.5 Кб, 5 просмотров)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.09.2013, 18:54
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Динамический массив выдаёт ошибку (C++):

выдаёт ошибку в составленной программе выдаёт ошибку - C++
Составить программу, которая находит максимальное значение среди элементов линейной таблицы Y, состоящий из N действительных чисел, имеющих...

При решении программа выдаёт значение функции, равное 0 или выдаёт ошибку. Что не так? - C++
#include <iostream> #include <iomanip> #include <cmath> using namespace std; long Fact(short m)// функция вычисления факториала ...

Динамический массив (найти ошибку) - C++
Здравствуйте уважаемые знатоки!) В общем программирую я не так давно и взялся написать динамический массив на основе связанного списка....

Динамический массив на C++(исправить ошибку) - C++
Заменить наименьшие элементы в массиве на среднее арифметическое его значений. Создать функции для вычисления среднего арифметического...

Динамический массив, исправить ошибку - C++
Здравствуйте, помогите найти ошибку: Все четные элементы целочисленного массива К(п) поместить в массив L(n), а нечетные — в массив М(п)....

Динамический массив - найти ошибку в коде - C++
#include "stdafx.h" #include "iostream" #include "time.h" #include <iomanip> using namespace std; const int n = 2; ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
alsav22
5419 / 4815 / 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
}
1
dzrkot
zzzZZZ...
519 / 349 / 53
Регистрация: 11.09.2013
Сообщений: 1,998
15.09.2013, 10:30  [ТС] #3
а...всё спасибо понял в чём ошибся....))

Добавлено через 10 часов 34 минуты
Другой вопрос, а можно ли сделать этот динамический массив статическим? или это само по себе невозможно?
0
alsav22
5419 / 4815 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
15.09.2013, 10:58 #4
Цитата Сообщение от dzrkot Посмотреть сообщение
Другой вопрос, а можно ли сделать этот динамический массив статическим? или это само по себе невозможно?
Из динамического сделать статический? Просто статический можно, но только не в конструкторе.
1
dzrkot
zzzZZZ...
519 / 349 / 53
Регистрация: 11.09.2013
Сообщений: 1,998
15.09.2013, 11:03  [ТС] #5
в хедере я дописываю пере массивом static, в потом в срр я инициализирую сам массив, но это проходило для обычных массивов, а для этого так не получается...
0
alsav22
5419 / 4815 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
15.09.2013, 11:11 #6
Цитата Сообщение от dzrkot Посмотреть сообщение
а для этого так не получается...
Для какого "этого"? Вы что-то там делаете, а потом спришиваете: почему не получается. Ясновидящих тут нет. Хотите получить ответ - покажите код и по нему задайте вопрос.
0
dzrkot
zzzZZZ...
519 / 349 / 53
Регистрация: 11.09.2013
Сообщений: 1,998
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
}
0
alsav22
5419 / 4815 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
15.09.2013, 11:25 #8
Цитата Сообщение от dzrkot Посмотреть сообщение
код вы сами приводили выше, и весь файл прикреплён...
Там это есть?
Цитата Сообщение от dzrkot Посмотреть сообщение
в хедере я дописываю пере массивом static, в потом в срр я инициализирую сам массив,
0
dzrkot
zzzZZZ...
519 / 349 / 53
Регистрация: 11.09.2013
Сообщений: 1,998
15.09.2013, 11:28  [ТС] #9
Что вы от меня сейчас хотите? мне выложить код хедера с припиской static? Я в этом не видел необходимости, т.к. думал что необходимо в срр дописать одну строчку инициализации, чтобы он работал.
0
alsav22
5419 / 4815 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
15.09.2013, 11:29 #10
Цитата Сообщение от dzrkot Посмотреть сообщение
Я в этом не видел необходимости, т.к. думал что необходимо в срр дописать одну строчку инициализации, чтобы он работал.
Продолжнайте думать дальше.
0
dzrkot
zzzZZZ...
519 / 349 / 53
Регистрация: 11.09.2013
Сообщений: 1,998
15.09.2013, 11:31  [ТС] #11
Большое спасибо за сарказм.
0
alsav22
15.09.2013, 11:33
  #12

Не по теме:

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

0
dzrkot
zzzZZZ...
519 / 349 / 53
Регистрация: 11.09.2013
Сообщений: 1,998
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;
}
Следующий напишет что-то типа , "зачем выкладывать ради этого весь код".
0
alsav22
5419 / 4815 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
15.09.2013, 12:03 #14
C++
1
unsigned long *NewNumber::arrayNum = NULL; //.....не знаю как его правильно инициализировать....
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.09.2013, 12:03
Привет! Вот еще темы с ответами:

Двумерный динамический массив - найти ошибку в коде - C++
#include &lt;iostream&gt; #include &lt;conio.h&gt; using namespace std; class Matrix { private: int lenght; int width; int**...

Двумерный динамический массив - найти ошибку в коде - C++
Где ошибка? using namespace std; void VivodMass(int** &amp;M, int n) { for (int i = 0; i&lt;n; i++) { for (int j = 0; j&lt;n;...

Двумерный динамический массив - найти ошибку в коде - C++
Кто мне может объяснить почему не работает вариант, когда мы выносим весь процесс выделения памяти под двумерный массив и заполнение оного...

Динамический массив: программа выдает ошибку памяти - C++
Вот программа, выдает ошибку памяти как её исправить? не получается #include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;stdlib.h&gt; ...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
15.09.2013, 12:03
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru