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

Проверить массив на инициализированность - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ В чём отличие switch и if? http://www.cyberforum.ru/cpp-beginners/thread611308.html
Препод задал вопрос, я ответил, то что switch использует только int и char, возвращается не логическое выражение, а целое... Она спросила, какие ещё есть отличия
C++ Объявление класс в нескольких файлах Можноли как-то объявление одного класса разбить на несколько заголовочных файлов? Хочу создать класс, в котором основной функционал находится в одной паре *.h, *.cpp, а дополнительный в других. Что бы при написании программ можно было подключать нужный мне функционал и не компилировать лишнее. http://www.cyberforum.ru/cpp-beginners/thread611260.html
Нарисовал блок схему нужно проверить C++
Рисую блок схему первый раз за 2 года.. вот код программы #include <windows.h> #include <string> #include <iostream> #include <iomanip> #include <fstream> #include <stdio.h> #include <conio.h> #include <stdlib.h>
Сравнение одночленов X со степенями C++
Здравствуйте. Есть задача: Дана запись многочлена (от переменной X) произвольной степени с целыми коэффициентами, причем его одночлены могут быть и не упорядочены по степеням X, а одночлены одной и той же степени могут повторяться, например: -8x^4-74x+8x^4+5-x^3 Требуется привести подобные члены в этом многочлене, после чего распечатать его по убыванию степеней X. Как я понимаю сначала...
C++ Найти целую часть суммы чисел http://www.cyberforum.ru/cpp-beginners/thread611200.html
Исходные данные: x=12 a=9,5 Найти целую часть суммы чисел G, I, U
C++ Система линейных уравнений методом Гаусса с выбором главного элемента по столбцу не как не пойму что делают в прямом ходе каждый из For #include "stdafx.h" #include <iostream>//i/o #include <conio.h> //getch #include <cmath> //fabs, abs using namespace std; void ShowVector(int n, double * vec); void PryamoiHod(int n, double **a, double *b); подробнее

Показать сообщение отдельно
zek921
9 / 9 / 2
Регистрация: 30.04.2011
Сообщений: 130
Записей в блоге: 1
21.06.2012, 23:58  [ТС]     Проверить массив на инициализированность
Ох ,выложил бы сразу код ...

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
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
class subnet
{
private:
    unsigned char *net_addr;
    unsigned char *broadcast_addr;
    //list<unsigned char *>occupied_addr;
 
    typedef struct _info
    {
    unsigned char *occupied_addr;
    string Name;
    string Comment;
    }Info;
    list<Info> data;
 
     int free_addresses_count;
     int pref_length;
public:
    subnet();
    subnet(unsigned char* ,unsigned char* ,const int&,const int&); // здесь нужо добавлять адресс сети и с ним же широковещательный
    // само собой ,при известном уже колличестве хостов .Добавим адресс сети по умолчанию ,это юудет 10.0.0.0/8
    subnet(const subnet& b);
    ~subnet();
    unsigned char * ret_broadcast();
 
    void Add();
    void Add_addr(/*привести в функции во вменяемый вид ,добавить новый адресс;коль нужно - пояснения к нему */);
    void Delete();
    void Show();
    string ToString();
    void ToStr();
};
class subn_calc
{
private:
    // контеинер с подсетями
    void convert(string&,unsigned char*);
    list<subnet> Subnets;// если контеинер не пуст,
    //предыдущий широковещательный адресс +1 должен быть равен текущему адрессу сети и всё такое ...
        void Calculate(unsigned char*,int&,unsigned char*,int&);
 
        void pls(unsigned char*,const int&,unsigned char*,const int&);
        void mns(unsigned char*,const int&,unsigned char*,const int&);
 
    //  friend subnet ret_by_ind(list<subnet> container,int index);
public:
    //subn_calc();
    //~subn_calc();
    void Add_new_subn(/* комбаин для перемалывания фарша*/string&,int&);
 
    
    void Find();
    void Open(/*pathway*/);
    void Load();
    void Save();
    void ToStringFull();
    
};
subnet::subnet()
{
net_addr = new unsigned char[4];
broadcast_addr = new unsigned char[4];
pref_length =0;
free_addresses_count =0;
}
subnet::subnet(const subnet& b)
{
    
    //if(this->net_addr==nullptr )
    //{
    //  delete[] net_addr;}
    net_addr = new unsigned char[4];
    for(int i=0;i<4;i++)this->net_addr[i] = b.net_addr[i];
    //if(this->broadcast_addr){delete[] broadcast_addr;}
    broadcast_addr = new unsigned char[4];
    for(int i=0;i<4;i++)this->broadcast_addr[i] = b.broadcast_addr[i];
    this->pref_length = b.pref_length;
    this->free_addresses_count = b.free_addresses_count;
}
 
void subn_calc::Add_new_subn(string& addr,int& hosts)
{
    // hosts 
    unsigned char* temp1 = new unsigned char[4];// net addr
    convert(addr,temp1);
    unsigned char* temp2 = new unsigned char[4];// broadcast addr
    int pref=0;
    Calculate(temp1,hosts,temp2,pref);
    /*for(int i=0;i<4;i++)cout<<(int)temp1[i]<<" ";
    cout<<endl;
    for(int i=0;i<4;i++)cout<<(int)temp2[i]<<" ";
    cout<<endl;*/
 
    if(Subnets.empty())
    {
        //subnet t1_;
        //Subnets.push_back(t1_);
        subnet t2_ = subnet(temp1,temp2,(hosts-2),pref);
        //Subnets.back() = t2_;
        Subnets.push_back(t2_);
    }
    else
    {
    //subnet temp3 ;
    //temp3 = ret_by_ind(Subnets,(Subnets.size()-1));
        //list<subnet>::iterator  iter = Subnets.begin();
        //for(int i =0;i<(Subnets.size()-1);i++) ++iter;
        
        unsigned char* temp3 = new unsigned char [4];
        pls(/*(*iter).ret_broadcast()*/(Subnets.back()).ret_broadcast(),1,temp3,3); // здесь шибка
        if(temp3!=temp1)
        {
        //error here !!!
        }
        else
        {
            subnet t1_ = subnet(temp1,temp2,(hosts-2),pref);
            Subnets.push_back(t1_);
        }
    }
    cout<<endl<<endl;
    for(int i=0;i<4;i++)cout<<(int)temp1[i]<<" ";
    cout<<endl;
    for(int i=0;i<4;i++)cout<<(int)temp2[i]<<" ";
    cout<<endl;
    cout<<endl;
}
код не весь .Если нужно - выложу весь .Комменты мои мне же .Не обращайте внимания .
 
Текущее время: 23:44. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru