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

выделить новую память new так, чтобы адрес остался прежним - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Builder Поиск данных в гриде http://www.cyberforum.ru/cpp-beginners/thread609125.html
написала код на С++, вродь правельно Суть: пользователь вводит данные в едит,программа сведяет данные с гритом на первой форме, если есть совподение, то данные заносятся в грид на 2-ой форме.........Но программа данные находит , а в грид помещать не хочет { Pos=Edit1->Text; for (int n=1; n < StringGrid1 -> ColCount-1; n++) {for (int n1=1;n1 < StringGrid1 -> RowCount-1; n1++) { if...
C++ Проверить, есть ли в записи натурального числа N три одинаковые цифры дано натуральное число n. Проверить есть ли в записи числа три одинаковые цифры http://www.cyberforum.ru/cpp-beginners/thread609102.html
C++ Ошибка stdlib.h
Имеется файл содержащий что-то подобное: 1. Nomer reisa: 1 ves bagazha: 1.00 (kg) kolichestvo veshei: 11 2. Nomer reisa: 1 ves bagazha: 1.00 (kg) kolichestvo veshei: 12 3. Nomer reisa: 1 ves bagazha: 1.00 (kg) kolichestvo veshei: 21 4. Nomer reisa: 1 ves bagazha: 1.00 (kg) kolichestvo veshei: 22 Вроде код без ошибок: char* asd;
Существует ли готовая функция экранирования кавычек, слешей и тому подобных символов? C++
Существует ли готовая функция экранирования кавычек, слешей и тому подобных символов? Мне надо вывести c-строку в xml, а в ней есть кавычки и слеши.
C++ Обработка исключений http://www.cyberforum.ru/cpp-beginners/thread609063.html
Есть код программы по поиску совершенных чисел а интервале от a до n. #include <iostream> using namespace std; int main(void) { int a,n; cout<<"Input a: ";
C++ Как правильно перегружать потоковый оператор вывода в файл? Нужен только прототип оператора, реализацию сделаю сам. Обязательное требование: должна поддерживаться "цепная" форма: Log<<"<variable>"<<std::endl<<"<value>"<<variable<<"</value>"<<std::endl<<"<adress>"<<(void *)&variable<<"</adress>"<<std::endl<<"</variable>"<<std::endl;. Я перегрузил, но как то косо, в результате слева поддерживалось только имя потока, но не другой оператор вывода в него. То... подробнее

Показать сообщение отдельно
Андрей2011
29 / 23 / 2
Регистрация: 18.01.2011
Сообщений: 359
19.06.2012, 12:24  [ТС]     выделить новую память new так, чтобы адрес остался прежним
Хм. Ну может я не правильно что-то сделал. Это не задание а для души.
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
void __fastcall TForm1::funcUveli4itMassivTo4ek(const short &FKto,const short &FX,const short &FY)
{
 
 short Rezerv = 5;  //увеличим резерв на Rezerv
  (*p_KolTo4ek)++;
 
  if ((*p_KolTo4ek)>=(*p_KolRezervTo4ek)) //надо пополнить резерв
  {
 
  if ((*p_KolTo4ek)==1) //Значит память не выделена
   {
         (*p_KolRezervTo4ek)=(*p_KolTo4ek)+Rezerv;    //увеличим кол-во элементов резерва.
 
          try
          {
          p_To4ka = new TTo4ka[(*p_KolRezervTo4ek)];
          }
          catch (bad_alloc xa)
          { ShowMessage("Под массив точек память не выделена!!");}
   }
   else
   {
       TTo4ka *p_KopiTo4ka=NULL;  //Делаем копию.
       (*p_KolRezervTo4ek)=(*p_KolTo4ek)+Rezerv;   //увеличим резерв.
 
       try
       {
        p_KopiTo4ka = new TTo4ka[(*p_KolRezervTo4ek)]; //создаем копию
        }
        catch (bad_alloc xa)
        { ShowMessage("Под массив точек память не выделена!!");}
 
 
       for (short i = 0; i <(*p_KolTo4ek); i++) //копир инфу в копию.
       { p_KopiTo4ka[i]  = p_To4ka[i]; }
 
        delete[]  p_To4ka; p_To4ka=NULL; //удаляем массив.
 
        p_To4ka = p_KopiTo4ka;  //присваеваем указатель.
   }
   }
 
   //Добавим точку.
   p_To4ka[(*p_KolTo4ek)-1].FId =*p_KolTo4ek;
   p_To4ka[(*p_KolTo4ek)-1].FX = FX;
   p_To4ka[(*p_KolTo4ek)-1].FY = FY;
   p_To4ka[(*p_KolTo4ek)-1].FKto = FKto;
 
   p_MassivTo4ek[FX][FY] =  (*p_KolTo4ek);
 
}
- т.е. это ф-я которая запускается тогда, когда появляется новая точка. Проверяю на то, есть ли еще место в выделеном массиве. если места нет, то выделяю новую память.

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
class TGrup
{
 
 
public:
    ClearGrup()
    {
   //   TGrup();
    ClearMassivTo4Grup(); //очистим массив содержащий точки
    ClearMassivWrazT();
    ClearMassivXY();
    FKoefSlab=0,FKto=-1; p_ThisVozmGrup= &VozmGrup_null;
    FIsp=true; FYKraya=false;
    }
    TGrup()
    {  //    ShowMessage("Объект создан");
        FId =-1,FGrup=0,FKoefSlab=0,FKto=-1; p_ThisVozmGrup=&VozmGrup_null;
        FIsp=true; FYKraya=false;
    };
 
 
 
    short FId,FGrup,FKoefSlab,FKto;
    bool FIsp,FYKraya;
    TVozmGrup *p_ThisVozmGrup;
 
    //****
    std::vector<TTo4ka*> MassivTo4Grup;
    short GetKolT() {return MassivTo4Grup.size(); }
    void ClearMassivTo4Grup() { MassivTo4Grup.clear(); }
    void AddToMassivTo4Grup(TTo4ka &T)
    { MassivTo4Grup.push_back(&T);  }
 
    //****
    std::vector<TTo4ka*> MassivWrazT;
    short GetKolWrazT() {return MassivWrazT.size(); }
    void ClearMassivWrazT() { MassivWrazT.clear(); }
    void AddToMassivWrazT(TTo4ka &T)
    { MassivWrazT.push_back(&T);  }
    //****
 
    //****
    std::vector<XY> MassivXY;
    short GetKolNetT()     {return MassivXY.size(); }
    void ClearMassivXY() { return MassivXY.clear(); }
    void AddToMassivXY(XY Mass)
    {   MassivXY.push_back(Mass); }
    //****
    ~TGrup()  {p_ThisVozmGrup=NULL;  }
 
TGrup(const &TGrup) {ShowMessage("Объект G скопирован! Копировать объект не надо"
                                   "т.к. создается он динамически.");};
private:
short FKolT;
 
};
- а так выглядит класс "группа". MassivTo4Grup - это массив куда записываются указатели на
точки т.е. адреса их памяти.
Если можно указывать сами точки...то подскажите как!! Буду благодарен крайне.
 
Текущее время: 19:34. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru