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

Создание объекта в области памяти - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Сортировка по убыванию использования горючего http://www.cyberforum.ru/cpp-beginners/thread844790.html
есть код, в нем надо сделать сортировку по убыванию использованого горючего. помогите доделать код. #include<iostream> #include <string.h> #include <iomanip> using namespace std; const int n=2;
C++ Массивы. Удалить из массива все элементы, превосходящие х, а оставшиеся сдвинуть к началу Введите с клавиатуры число х и удалите из массива все элементы, превосходящие х, а оставшиеся сдвинтек началу массива с сохранением последовательности http://www.cyberforum.ru/cpp-beginners/thread844775.html
C++ Конверт Pascal в C++
Всем добрый вечер! Сразу к делу. Требуется перевести исходный код программы с Pascal на C++ Сам код: uses crt; const nmax=100; var a:array of integer; n,l,i,j,x,jmn:integer; f:boolean; begin
C++ перегруженные функции и операторы
вопрос может быть тривиальный, но все же: как влияет количество вариантов перегруженных функций и операторов на скорости обработки? то есть есть ли разница в скорости выполнения между class Cl{ bool First(int val) {return val > 5;}; Cl p; for(int i=0; i< 1000; i++) p.First(i);}; и
C++ День рождения http://www.cyberforum.ru/cpp-beginners/thread844766.html
Заданы день и месяц рождения, а также текущие день, месяц и год. Определить, сколько дней осталось до дня рождения. Технические условия Входные данные В первой строке находятся разделённые пробелами день и месяц рождения, во второй - разделённые пробелами текущие день, месяц и год. Год от 1920 до 3000, месяц - от 1 до 12, день - от 1 до числа дней в месяце.
C++ Удалить поддерево Здравствуйте, подскажите, пожалуйста, как удалить поддерево, в котором с минимальное отношение (число листьев / число не листьев). Как посчитать это отношение? подробнее

Показать сообщение отдельно
ninja2
 Аватар для ninja2
230 / 186 / 7
Регистрация: 26.09.2012
Сообщений: 2,018
Завершенные тесты: 1
22.04.2013, 00:24     Создание объекта в области памяти
Здорова!
Тут вообщем не получается создать в одной и той же области памяти повторно объекты
От есть код:
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
//fynkci9 clone()
#include <iostream>
using std::cout;
using std::endl;
#include <cstdlib>
using std::exit;
 
//bazovui klacc dl9 Arena
class Arena
{
    int valArena;
public:
    virtual void* alloc(size_t)=0;
};
 
//klacc potomok Arena
class Arena_1 : public Arena
{
public:
    // ecli virtual dobovl9yu to owibka xz. pochemy
    virtual void* alloc(size_t size)
    {
        cout <<"alloc"<<endl;
        return this;
    }
};
 
//klacc ob6ektu kotorogo bydyt vctraivatc9
class X
{
public:
    int val;
    X():val(0){}
    X(int a):val(a){}
    X(X& a):val(a.val){}
    X* clone(Arena_1* p)
    {
        return new(p)X(*this);
    }
};
 
//peregryzka new
void* operator new(size_t size, Arena_1* a)
{
    cout <<"mu tyt"<<endl;//<<' '<<size<<endl; //exit(1);
    a->alloc(size);
}
 
int main()
{
    Arena_1* p=new(Arena_1);//cozdaem oblact6 pam9ti tipa Arena_1
    //X a;
    X* c=new(p)X;//pervui toko normal6no vctraivaetc9
    //a vce octal6nue idyt c owibkoi
    X* b=new(p)X;
    //X* d=a.clone(p);
    //X* k=a.clone(p);
    //cout <<p<<' '<<c<<' '<<b<<' '<<d<<' '<<k<<endl;
        
    
    return 0;
}
Первый раз когда я создаю в области на которую указывает p объект, то он нормально создается, но почемуто когда второй раз, то выводит ошибку (Ошибка сегментирования (сделан дамп памяти) ) ?????
Должно все время создавать объекты, столько сколько нужно, а не то шо щас, один создало и шо мне новую память выделять? Где то ошибка скорее всего в классе с виртуальными функциями мб чо то не так, потому, что если для одного класса создаю, не потомка, а просто для одного, то все работает так как положено, но мне нужно для потомка сделать. Hellp!
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 05:57. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru