Динамическое размещение объекта в определённом мес

 
0
 
C++
ava
Andrey Bushman | 04.10.2013, 18:54
Доброго времени суток.

В C++ имеется возможность размещать объект по чётко определённому, указанному разработчиком, адресу в памяти. В свете этого у меня возник вопрос об освобождении памяти, использованной таким образом.

Пусть, к примеру, у меня имеется некоторый массив объектов char (выделенный ранее динамически) и указывающий на адрес, по которому вдруг потребовалось разместить объект некоторого класса A.

На вскидку, мне видится три возможных варианта освобождения памяти. В коде ниже показываю все три варианта. В каждом из них происходит вызов деструктора, но я сомневаюсь, в каждом ли из них производится освобождение памяти...

Интуитивно считаю, что в третьем варианте память должна освобождаться (деструктор там я вызываю вручную, иначе он не будет вызван). Оператору delete указываю "родной" указатель типа char, которому и была изначально выделена память.

Но вот первый и второй вариант... С одной стороны, я использовал new, а с другой - я ведь не выделял новую память, а указал адрес уже выделенной ранее... Вот что в данном случае происходит? Происходит ли освобождение памяти, или же всё ограничивается банальным вызовом деструктора без последующего освобождения памяти? Как можно определить, произошло ли освобождение памяти? Может какой инструмент для этого имеется в GCC и MS Visual Studio 2012?


#include <iostream>
#include <exception>
using namespace ::std;

class A{
private:
    double x;
public:
    A() : x(0) { cout << "A class; ptr: " << this << " created." << endl; }    
    ~A() { cout << "A class; ptr: " << this << " destroyed." << endl; }
};

int main(int argc, char* argv[])
try{    
    int x = -1; // Variants of memory clearing
    while (x < 0 || x > 2) {
        cout << "Variant (0,1,2): ";
        cin >> x;
    }
    char* p = new char[sizeof(A)]; // some memory area...
    
    A* a = new(p)A(); // Place my object in the 'p' address.
    
    // Here is my basic work to do...
    
    // Now I must to free my memory:
    if(!x){ // First variant
        delete a;            
    }
    else if (x == 1){ // Second variant
        delete reinterpret_cast<A*>(p);    
    }
    else if (x == 2){ // Third variant
        a->~A();        
        delete[] p;    
    }
    else{
        throw runtime_error("Invalid variant!");
    }
    a = nullptr;
    p = nullptr;
    
    cout << endl;    
}
catch(exception& e){
    cerr << e.what() << endl;
    return 1;
}
catch(...){
    cerr << "Unknown exception." << endl;
    return 2;
}


Спасибо.
Comments (53)
ava
volatile | 04.10.2013, 18:06 #
третий вариант правильный.
первые два использовать нельзя.

т.е. если было так:
Цитата (Compositum @  4.10.2013,  17:54 findReferencedText)
   char* p = new char[sizeof(A)]; // some memory area...
  A* a = new(p)A(); // Place my object in the 'p' address.


то удалять нужно так:
Цитата (Compositum @  4.10.2013,  17:54 findReferencedText)
  a->~A();  
    delete[] p;

ava
Andrey Bushman | 04.10.2013, 18:10 #
Цитата (volatile @ 4.10.2013,  18:06)
первые два использовать нельзя.

А вот почему (хочу понять)? Ведь все указатели указывают на одну и ту же ячейку памяти и объект занимает столько же байт...
ava
o2n3e | 05.10.2013, 22:11 #
Запомни раз и навсегда - кто тебе отвечает ответами вида: "стандарт", "уб", "потомучто" - дно из ада.


По поводу твоего вопроса - я тебе уже объяснил почему.



#include <iostream>
#include <stdint.h>
#include <stdio.h>

using namespace std;

class A{
private:
    double x;
public:
    A() : x(0) { cout << "A class; ptr: " << this << " created." << endl; }    
    ~A() { cout << "A class; ptr: " << this << " destroyed." << endl; }
};

int main(int argc, char **argv) {
  char * p = new char[sizeof(A)]; // some memory area...
  fprintf(stderr, "%p\n", p);
  A * a = new(p)A(); // Place my object in the 'p' address.
  fprintf(stderr, "%p\n", a);
  delete a;
  p = new char[sizeof(A)];
  fprintf(stderr, "%p\n", p);
}


Это работает везде и будет работать. new/delete - банальная обвязка над маллоком, вернее оператор new/delete. Сам же new/delete просто вставляет конструктор/деструктор не более.


Аллокатор клал на твои классы/не классы. Вообще никаких классов нет. Поэтому похрен что ты там удаляешь, ибо оператор delete не знает тип. Узнаёт он его либо из иннода, который стоит левее от твоего указателя. *(uint64_t *)((uintptr_t)p - 16(8)). "Инноды" могут хранится вообще в другом месте, либо их может не быть, но в любой вменяемой реализации оператор delete будет класть на типы.


Но суть в том, что это поведение не определенно в стандарте - поэтому любой идиот может запилить так, что оператор delete будет зависить от типа и этому коду прийдёт конец( вернее конпеляция отвалится и у тебя бы этого вопроса не возникло). Хотя я даже не представляю зачем это надо и в чём будет профит. Это можно юзать для "быстрой" аллокации контантных величин, которые не будут задействовать райнтайм и все проверки делать в компилтайме.


Допустим, если у тебя есть "иннод" от твоего кусочка, то можно проверить релаьно ли он выделен, либо уже нет. Поэтому ты можешь хоть 100500 раз юзать delete, который при первом вызове затерёт иннод и дальше работать не будет. Сдесь же конпелятор должен будет чекать весь твой код. Причем работать будет лишь для локального мусора.


Т.е. delete p; реально работает и будет работать везде, но это уб и идиоты тебя за это не погладят. 
ava
volatile | 04.10.2013, 18:23 #
Compositum, есть такая вещь как стандарт, там написано что можно и что нельзя.
а почему... это вопрос риторический.

дофига разных почему можно задать.
например почему нельзя сдвигать отрицательные числа? ну вот почему?!
нельзя. и пепец. все.

Потому-что разработчики компиляторов ориентируются на стандарт.
И если там написано что нельзя, то они это в праве и не реализовывать.
ava
o2n3e | 05.10.2013, 21:23 #
Нет никаких нельзя - есть УБ и гарантии. Т.е. есть вещи, которые работают 100% так, а есть те, которые хрен знает как работают. Естественно реально никаких УБ нет и это всё отстранённая от реального мира брехня.


Те же сдвиги. Сдвигать можно всё - только за результат отвечает уже не стандарт, а знание матчасти. Если у тебя есть знаковые сдвиги, либо их софтварный аналог и ты знаешь что из себя представляют псевдознаковые числа - то сдвигать тебе их ничего не мешает. Формально да - это уб, но реально формат записи знака везде один, знаковые сдвиги есть много где, а если нет, то ~/конпелятор тебе в руки. И то, это даже не уб, а "результат немного не такой, как в учебнике".



Там не написанно "нельзя" - там написанно: "уб". Нет такой вещи в сишке, как "нельзя". Там нельзя максимум синтаксическое. А уб "разработчики конпелятора" в праве не не реализовывать, а реализовывать так, как хотят. Реально, если конечно конпелятор писали не адепты паскалятинки ака "динща из ада"(привет мелкософт), то реализацию у УБ всегда ~= одной. Хотя это больше не "днища из ада", а вендорлок.
ava
o2n3e | 04.10.2013, 19:01 #
Цитата

  В C++ имеется возможность размещать объект по чётко определённому, указанному разработчиком, адресу в памяти.
  

Не имеется. Вначале осиль указатели, перед тем, как задавать вопросы из ада. В твоём случае первая половина new(), а именно аллокатор заменяется на какой-нибудь cast(), а вторая его половина вызывает твои конструкторы и прочее.



char * p = new char[sizeof(A)];
A * ptr = (A *)p;//как там у вас положенно писать касты я не знаю.
//тут new вызывает твой конструктор от A.



Это ничем не отличается от простого new. Деструктор не влияет на твой "объект", поэтому его один хрен надо удалять, либо юзай "стек".


Портянка твоя ужасна, бесполезна и мне даже лень её читать.


ava
volatile | 06.10.2013, 02:27 #
Цитата (o2n3e @  5.10.2013,  22:11 findReferencedText)
Запомни раз и навсегда

имхо, новый троль какойто.
предвижу некоторое оживление форума..  smile 
интонации хороши.
научит щас всех уму разуму.
ava
o2n3e | 06.10.2013, 15:14 #
Новый тролль. В чём тролль? Давай, обоснуй мне попоцаночке.
ava
akizelokro | 06.10.2013, 16:36 #
Всё это глубоко индивидуально. Но уточню терминологию.
К примеру, старый стиль, ещё из Сишника вывода на экран в DOS-программах. Записываешь номера симоволов в определенную область памяти (с 0х8000 начинается чтоли, если мне моя память не изменяет) и ничего освобождать не надо. У тебя же не 
Цитата


размещать объект по чётко определённому, указанному разработчиком, адресу в памяти

,
а размещается объект в памяти, предварительно выделенной с помощью оператора new.

Дальше, останавливаться на том, что нежелательно ввод-вывод в потоки производить в деструкторе, думаю, не нужно.
Ну, и дальше малость посмотрел. Есть чистый ООП стиль (который ещё не отменил функцию malloc), есть стиль Сшных программистов (откуда функция malloc и появилась). ДУмаю, что незачем их смешивать, потому что из-за путаницы в стилях ухудшается внутренняя логика кода.
ava
o2n3e | 06.10.2013, 18:58 #
DOS - это говнище из ада, которое к вопросу ниеимеет никакого отношение. Это мёртворождённое говно, которое было ущербно со дня своего появления и во время своей популярности, но почему-то было популярно.


Всё это - это аллокаторы и руление кучей - это всё абстракции рантайма и к памяти никакого отношения не имеют. Аллокаторы существуют только на уровне ОС и процессора, если ты юзаешь виртпамять.


У тебя же небыло кучи как таковой - у тебя банальная прямая адресация памяти, которая протухла лет 200назад.


Нет, никаких объектов нет, никакая память не выделяется, и никакйо new за неё не отвечает. new - это абстракция над рантайм кучей, которая к памяти отношения не имеет.


Есть стиль тех, кто понимает, что такое память, а есть тех, кто не понимает. Маллок - это студенческое говно, либо просто заюзанный для совместимости вызов в примитивном коде. Это не ООП стиль - это ООП кастыль, ибо new - это не только "аллокатор"(оператор new), а ключевое словое языка - как кой-нибудь return. Именно в этом и есть различие, а не в каких-то там стилях. А оператор new - это банальная обвязка над маллоком почти во всех либс++.


Никакой путаницы нет. Никакая логина не ухудшается, ибо просто конструкторы/деструкторы не вызваются. А поверье "юзай new/delete" - пошла потому, что тупая животные не могли запомнить простую вещь: "маллок для стандартных тимов, new для классов с конструкторами". И лепили маллок где попало.
ava
EgoBrain | 07.10.2013, 04:46 #
Цитата (volatile @  6.10.2013,  02:27 findReferencedText)
имхо, новый троль какойто.

предвижу некоторое оживление форума..  smile 

интонации хороши.

научит щас всех уму разуму.



volatile, мне твоя позиция немного непонятна. Троль как то убедительно вещает, особенно для незнающего читателя. Надеюсь местные авторитеты если нужно где-то подправят его.
ava
o2n3e | 07.10.2013, 10:23 #
Тут нет таких авторитетов, котоыре осмеляться править меня - максимум они будут защищать свою шкурку от моей ненависти к досу и программистам не знающих матчасть, но называющих себя программистами.


Я вообе не понимаю, но юзал ты дос - посмейся нам этим и забудь как страшный сон, это как с паскалятинкой. Забудь и посмейся, аля: "был идиотом - бывает". Нет жешь они будут это говно защищать только лишь потому, чтобы о них не подумали, что они юзали говно.



Если я раньше юзал плюсы, то я забыл это как страшный сон. И согласен, что был дураком.
ava
baldina | 07.10.2013, 10:53 #
троля-ля...

EgoBrain, а его почти негде править, все правильно сказал. хитрость заключается в тонкой границе между техникой и методологией: технически правильные и работающие вещи могут быть ужасными с точки зрения ремонта и прочего сопровождения. крутизна не в том, что оно работает, а что всем понятно - как.
ava
xvr | 07.10.2013, 15:04 #
Цитата (Compositum @  4.10.2013,  18:10 findReferencedText)
А вот почему (хочу понять)? Ведь все указатели указывают на одну и ту же ячейку памяти и объект занимает столько же байт... 

Потому что new/delete это не только malloc/free, но и вызов конкретных коснрукторов/деструкторов. И если для malloc/free важен только кусок памяти, с которым их попросили поработать, то для конструкторв/деструкторов важен ТИП того, что в этой памяти лежит. 1й и 2й вариант дают неправильную информацию о типе.

И вообще - удалением памяти должен заниматься тот, кто ее выделял. Placement new не выделяет память (он использует готовую), это значит, что вызывать обычный delete на этот участок памяти нельзя.
ava
o2n3e | 08.10.2013, 07:14 #
Какие люди, ты издеваешься надо мной? Ты сюда пришел, шут, смешить меня своими третьесортными недознаниями с задней парты? Причем это очередная недокопипаста, после того, как я написал все по-пацаночке?


Для начала осиль мануал, оператор new/delete и есть malloc/free. Вызов деструкторов - это совершенно другая часть языка, которая так же клала на рантайм типы(типы, которые лежат там в твоей памяти). Поэтому ей важен лишь твой тип указателя, к которому ты её вызываешь, и даже если там будут нули - она всё ровно вызовит деструктор, ибо реально - это вызов отдельной функции.


Рантайм вызовы - это виртфункции, которые работают совершенно по иному, и им уже важно что лежит, но даже в этом случаее - похрен чем ты там "выделял память". Вариант delete p; работает во всех случаях.


И вообще, может ты не будешь нести херню, ученик с задней парты? А значит, если ты подучишь матчасть - ты поймёшь, что оператор new/delete клали на тип, и даже если ты указатель кастанёшь в воид - он будет его "удалять".



Очередной твой горевыхлоп, который не имеет отношения к реальному миру. Уйди отсюда, и больше, при мне, такую гнилую портянку не катай.
ava
baldina | 08.10.2013, 10:39 #
o2n3e, полегче, грубить не надо. пафос приводит к нервозности, нервозность - к ошибкам.

"по мануалу" оператор new/delete не есть malloc/free

вызов деструкторов учитывает рантайм тип (если программист озаботился виртуальным деструктором). хотя говорить о рантайм типах в языке со статической типизацией и фактическим отсутствием в рантайм информации о типах дело неблагодарное smile 

виртуальным функциям все равно что там лежит: это их вызывают, а не они.

все предопределено еще на стадии компиляции, движуха обеспечивается обобщением скаляра до функционала - заменой адреса на механизм виртуализации.

апелляция к реализации возможна в частном случае, если он явно указан, но единственная реальная опора - стандарт.
ava
o2n3e | 08.10.2013, 22:38 #
Ошибок у меня нет, покрайней мере в таких примитивных вещах. На пафос я клал, менян е интересует мнение неосиляторов, я не хочу быть богом среди них, как тот же xvr.

Ты не знаешь сколько раз он пытался со мной спорить, сколько он раз слилвался как ребёнок, затирая потом(сам или при помощи братков) мои посты, либо баня меня. Если бы он вёл себя сопостовимо с уровнем своих знаний - я бы ему и слова не сказал, но имея знания уровня недовузовской библии - спорить со мной, да ладно спорить - посылать необоснованно учить меня матчасть. И заметь - он ниразу не объяснил мне почему я не прав.

Цитата

  "по мануалу" оператор new/delete не есть malloc/free
  

По мануалу это аллокатор, который работает абсалютно так же, как malloc/free.


Цитата

  вызов деструкторов учитывает рантайм тип (если программист озаботился виртуальным деструктором).
  

Ты хочешь меня поучить матчасти? Он учитывает не рантайм тип, даже в виртуальных функция(причем о них я говорил, нахрен ты мне пастишь то, о чем я писал? Причем в такой ущербанской и неточной форме?).

Цитата

  хотя говорить о рантайм типах в языке со статической типизацией и фактическим отсутствием в рантайм информации о типах дело неблагодарное
  

Оператор new/delete не учитывает ни рантайм/ни компилтайм типы - это банальный шаблонный sizeof() во всех вменяемых и не вменяемых реализациях. Меня не интересует что там благодарное, а что нет.

Цитата

  виртуальным функциям все равно что там лежит: это их вызывают, а не они. 
  

Ты продолжаешь меня учить. Все ООП-кастыли являются частью обекта, да и что ты хотел это сказать?

Цитата

  все предопределено еще на стадии компиляции, движуха обеспечивается обобщением скаляра до функционала - заменой адреса на механизм виртуализации.
  

Ты мне хочешь рассказать о виртфункциях, зная лишь о детсадовском их описании? Все ООП-кастыли - это банальная сишная магия.

Цитата

  апелляция к реализации возможна в частном случае, если он явно указан, но единственная реальная опора - стандарт.
  

Апора для кого? Для тебя? Для тебя поясню, виртфункции, функции, классы, объекты и прочее ООП-говно в С++ никакого отношения к оператору new/delete не имеют. И без разницы какая там реализация.


Реализация должна иметь семантику не нарушающую стандарт, и эта семантика предпологает независимость оператора new/delete от new/delete. Реализация виртфункций тоже не имеет значение, хотя вменяемая реализация у всех этих кастылей одна - это вариации над таблицами переходов. И без разницы какая будет эта вариация - она никогда отношение к аллокатору иметь не будет.

ava
xvr | 08.10.2013, 11:43 #
Цитата (o2n3e @  8.10.2013,  07:14 findReferencedText)
Для начала осиль мануал, оператор new/delete и есть malloc/free.

Быстро учить матчасть. Как выучишь - приходи учить других. А пока посиди в бане - отдохни и остудись
ava
o2n3e | 08.10.2013, 14:04 #
123
ava
o2n3e | 08.10.2013, 22:19 #
Ты реально думаешь, что у тебя есть хотябы йёта шанса что-то мне противопоставить? Хорошо, я не буду тебя тыкать в грязь как во всех остальных случая - я просто тебе дам задание: Обоснуй мне по-пацаночке в чём я не прав, вот берёшь и разбераешь по предложению мою портянку.


А пока тебе задача - что такое оператор new/delete, почему это не маллок и фри, и почему оператор new/delete не имеет никакого отношения к конструкторам/деструкторам.
ava
akizelokro | 09.10.2013, 19:36 #
Цитата (o2n3e @  6.10.2013,  18:58 findReferencedText)
DOS - это говнище из ада, которое к вопросу ниеимеет никакого отношение. Это мёртворождённое ###, которое было ущербно со дня своего появления и во время своей популярности, но почему-то было популярно.


Это всё - лирика. На этом шли заказы, а дальше лишь уже можно говорить, что там лучше, винда или полуось, или винда или линукс. Когда заказ сделан, можно заняться и эстетикой.

Цитата (o2n3e @  6.10.2013,  18:58 findReferencedText)
Есть стиль тех, кто понимает, что такое память, а есть тех, кто не понимает. Маллок - это студенческое ###, либо просто заюзанный для совместимости вызов в примитивном коде. Это не ООП стиль - это ООП кастыль, ибо new - это не только "аллокатор"(оператор new), а ключевое словое языка - как кой-нибудь return. Именно в этом и есть различие, а не в каких-то там стилях. А оператор new - это банальная обвязка над маллоком почти во всех либс++.

Ну, можешь считать и так. Но здесь начнётся уже опять стародавний спор о преимущестах обьектно-ориентированной парадигмы, функциональный или структурной. По крайней мере, принятно,  что знание ассемблера обязательно для системных программистов С++. А здесь уже точно весело. smile 
А дальше берётся и читается Страуструп или кто-то из идеологов ООстиля. И вспоминается простая истина, что ООП сделано для индустрии, в которой пишет один, отлаживать может другой, править третий. И желательно, чтобы код был понятен, а ещё лучше, чтобы в нем не было непривычных выкрутасов (комментарии в помощь)
ava
o2n3e | 10.10.2013, 06:53 #
Цитата

  Это всё - лирика. На этом шли заказы, а дальше лишь уже можно говорить, что там лучше, винда или полуось, или винда или линукс. Когда заказ сделан, можно заняться и эстетикой.
  

Что? Меня не интересуют не твои рассказы, ни твои заказы. ДОС - говнище, и если ты это говно юзал - забудь как страшный сон, а не опрадывай себя заказами.


Цитата

  Ну, можешь считать и так.
  

Я считаю, а не могу. И не никто лучше меня считать тут врядли сможет.

Цитата

  Но здесь начнётся уже опять стародавний спор о преимущестах обьектно-ориентированной парадигмы, функциональный или структурной.
  

Нету никаких парадигм. Меня не интересуют споры заедушных обезъянок - в каком стиле там безмоглым животным проще ваять говно.


Ну и да, зачем ты это сюда приплетаешь? Продолжаешь нести фигню? Это к new/delete неимеет никакого отношения.

Цитата

  По крайней мере, принятно,  что знание ассемблера обязательно для системных программистов С++. 
  

Что ты подразумеваешь под знанием ассеблера? Знать недовузовскую библию? И какое-нибудь максимум 486-е говно?

И какие такие "системные С++ программисты". Не смеши мои тапки.


Цитата

  А здесь уже точно весело.
  

Где?

Цитата

  А дальше берётся и читается Страуструп или кто-то из идеологов ООстиля. 
  

Да я как-то клал. Меня не интересуют библии. Что она мне даст? Раскажет мне как мне полезны классы и прочая ересь?

Цитата

  И вспоминается простая истина, что ООП сделано для индустрии, в которой пишет один, отлаживать может другой, править третий.
  

Забыл одну очень важную вещь - мейнстрим - это пристанище бездарей и самое дно ада. Меня не интересует то, что помогает тупому студенту-полудурку ваять говно, думая чуть меньше, чем его сосед.

Цитата

  И желательно, чтобы код был понятен, а ещё лучше, чтобы в нем не было непривычных выкрутасов (комментарии в помощь)
  

И это меня тоже не интересует. Мне не интересно писать гвоно лишь только потому, что какой-то говнарь не осилил ЯП и пошел гавнякать на нём за еду.

Меня не интересует то, что мой код должна понимать макака. Может мне половину слов забыть, чтобы не обижать тех, кто только начал учить русский? Я пишу так, как проще, причем проще не тупой макаке, а тому, кто осилил ЯП.


Ибо если макака не осилила ЯП - она должна не идти говнять за еду, а осиливать.


И да, к чему ты написал эту портянку? Меня не интересует взгля с заедушного дна окияна, а так же проблемы/причины/нытьё/оправдание этого дна.
ava
akizelokro | 10.10.2013, 13:49 #
Цитата (o2n3e @  10.10.2013,  06:53 findReferencedText)
Я считаю, а не могу. И не никто лучше меня считать тут врядли сможет.

Успокойся, гражданин. Холивар, что лучше, полуось или винда, помню. Холивар, что лучше, винда или линукс, помню. Холивара по поводу доса не было.
Скажу тебе страшное, мне вообще на дос или какая операционка, начихать. Все мои холивары закончились в тот момент, когда я от нефикх делать поставил на одну тачку три операционки и написал что-то помимо под линукс, ещё и под полуось. А дальше я во всех холиварах просто подтрунивал над спорящими сторонами. Ибо, никто не идеален.

Цитата


И какие такие "системные С++ программисты". Не смеши мои тапки.


Ну, есть ребятки, которые пишут всякую "шнягу" и "байду". Есть прикладники, есть системщики. Часть системщиков использует С++ (а не С). Я сам удивился, пока не пообщался с некоторыми штатовцами в онлайне.

Цитата


Забыл одну очень важную вещь - мейнстрим - это пристанище бездарей и самое дно ада. Меня не интересует то, что помогает тупому студенту-полудурку ваять ###, думая чуть меньше, чем его сосед.


Люди все разные. Кто-то умнее, кто-то глупее, к сожалению. Но факт есть факт, программирование уже индустрия, и С++ затачивался именно под индустриальные требования. А дальше уже остаётся давать слово деньгам. Деньги, как-то так получается, умнее всех. И они вкладывались в индустрию. Потому что одиночки сделают мало, по определению.
ava
o2n3e | 10.10.2013, 18:45 #
Цитата

  Успокойся, гражданин. Холивар, что лучше, полуось или винда, помню. Холивар, что лучше, винда или линукс, помню. Холивара по поводу доса не было.
  

Это не холивар, а твой слив. Это не форум домохозяке, где ведётся спор о досе и вантузке. А сдесь же не холивар, а объективный факт - дос говно. Она тотально, по всем параметрам сливает юниксу. Ну вот прям по всем - это жалкая студенческая поделка.

Цитата

  Скажу тебе страшное, мне вообще на дос или какая операционка, начихать. Все мои холивары закончились в тот момент, когда я от нефикх делать поставил на одну тачку три операционки и написал что-то помимо под линукс, ещё и под полуось. А дальше я во всех холиварах просто подтрунивал над спорящими сторонами. Ибо, никто не идеален.
  

Когда я что-то пишу - меня интересуют 3 вещи: удобсво, мощность + компактность, а так же "быстрота" api + широта возможностей, которые они(сисколы) дают. Вменяемость подхода к написанию сисколов, мануалов. Моё api должны писать не делфятские макаки, как в вантузке, а тот, кто хотябы осилил сишку.

Ну и основной плюс - я должен знать как всё работает, у моей ОС должна быть гибкость - я должен с минимальными усилиями( не тратя времени/сил на разгребание говна, понимание ходов мысле криволапых бездарей и прочего) осилить, понять, перепилить, запилить новое.


Про такие фичи, как вменяемая интеграция с либц, вменяемые системные инструменты и прочее я уж не говорю.



Меня не интересует идеальность - я выбираю лучшее из возможного и призераю всё, кроме лучшего. Меня не интересуют аргументы, аля: "там легче", "там заеду говнякать проще" и прочее. Если ты сознаешься, что да - я юзаю говно - я тебя похвалю и деактивирую свою ненависть, но когда мне ярые анскильные личности доказывают, что я холиварю, плюсов нет - всё одинаково, какие-то там инструменты под задачу, у них заказы и прочее - у меня эти жалкие оправдания вызывают только больше ненависти, ибо эти люди безнадёжны.


Никогда программист, без признания того, что всё говно и он ваяет говно - не осилит стать кем-то выше бездарного заедушного говнаря.


Цитата

  Ну, есть ребятки, которые пишут всякую "шнягу" и "байду". Есть прикладники, есть системщики. Часть системщиков использует С++ (а не С). Я сам удивился, пока не пообщался с некоторыми штатовцами в онлайне.
  

Никто из вменяемых системщиков не юзает С++, а если юзают - он маздайское заедушное говно. Понимаешь в чём штука - с системном программирование есть основной кит - это предсказуемость. Я не просто ваяю говно, но я ещё понимаю что и как конпелятор из этого говна делает. Далее - stl и все С++ фичи слишком ущербны и тормазны для написания чего-то быстрого, сложного и вменяемо работающего.


Мне тут не нужны ни говнострукты говноданных, ни говноаллокаторы, которые не поменяешь в стл не через жопу. Ни говноалгоритмы, которые сливают 3-х строчному кастылю в сотни раз. Я не пишу, как неосиляторы - мне не нужно никакое управление памятью, я знаю, что такое память и как она работает.

Мне нужен чистый язык, а С++ мне нидаёт никаких плюсов как чистый язык, да и по возможностям он в говно сливает gnuс.

Цитата

  Люди все разные. Кто-то умнее, кто-то глупее, к сожалению.
  

Нет такого слова глупее. Ты либо избрал путь говнаря, но если ты его избрал - тебя никто права даже называть себя программистом не даёт, не то, что спорить с пацами.

Если ты выбрал путь говнаря - ты дешевая, малоквалифицировнная рабсила. Это так же, как гастр, который ресует разметку на асфальте возомнит себя художником, прийдя учить и спорить с художниками. Да, твоя работа как-то связанна с краской(ЯП), но ты говно.

Цитата

  Но факт есть факт, программирование уже индустрия, и С++ затачивался именно под индустриальные требования.
  

Понимаешь в чём суть, меня не интересует идустрия со дна окияна. Я оцению вещи просто - что даёт пробатьке больше возможностей, удобства и радости. Как эти поведут себя с макакой - мне не интересно и я на это клал.

Цитата

  А дальше уже остаётся давать слово деньгам. Деньги, как-то так получается, умнее всех.
  
 
Ты путаешь деньги и еду. Жрачка для макаки важнее развития и всего, что выше это жрачке. Макакая ваят говно, пока ей дают жрачку - ей похрен как ваять, что ваять - жрачки нет, она будет "учиться", пока жрачка снова не появится, а когда она появится - макака будет тупо жрать.

Если ты настолько говно, что поставил жрачку во главу своего угла, да ещё признал её умнее себя - ну флаг тебе в руки.

Цитата

  И они вкладывались в индустрию. Потому что одиночки сделают мало, по определению.
  

Индустрия ничего полезного миру не даёт - это бесполезное говно, которое впаривают таким же животным. Макака, у которой жрачка главенствует, даже не разбирается в этой жрачке и жрёт всё подрят. Поэтому мейнстрим - это банальное отмывание бабла на макаках. Одни макаки за жрачку ваяют говно, другие убеждают других макак купить это говно за свою жрачку - макаки покупают.


Создают всё какраз-таки одиночки. Мейнстрим не породил ни одного вменяемого начинания, ни одной вменяемой вещи - всё что порадил мейнстрим - это плоды творения одиночек из бородатых годов. Либо ты как идиот веришь, что вменяемые вещи - это говно макаки, "сделанное" этой макакой за жрачку? У меня для тебя плохие новости.
ava
Earnest | 10.10.2013, 13:59 #
Модератор:
Друзья! Не надо засирать здешний заповедник относительной вежливости.
Тон, в котором ведет "дискуссию" o2n3e, абсолютно недопустим.
Если есть что-то сказать автору топика по сути - прошу.
Но отвечать на такие выпады - себя не уважать. Просто игнорируйте.

ava
o2n3e | 10.10.2013, 18:54 #
Цитата

  Друзья! Не надо засирать здешний заповедник относительной вежливости.
  

Тут нет вежливости - тут притворное жополизство. Вы делаете свими богами бездарей, которым нравится жополизство. Это не настоящая вежливость, и если вы в этом верите - верте.

Цитата

  Тон, в котором ведет "дискуссию" o2n3e, абсолютно недопустим. 
  

Привыкайте, в таком тоне ведутся все вменяемые дискусси людей осиливших матчасть. Тут основа дискусси не полизать жопу, а понять/донести, и если человек не понимает нормальный тон - юзается такой. Но т.к. тут нет тех, кто осилил матчасть - вы к этому не привыкли.

Цитата

  Если есть что-то сказать автору топика по сути - прошу.
  

Автору топика я объяснил всё по-пацаночке, но со мной начали спорить и разговор зашел не в ту стезю, но не отменяет не охрененную полезность данного разговора, да и автор топика получил ответ.


Цитата

  Но отвечать на такие выпады - себя не уважать. Просто игнорируйте.
  

Реально? Слится как животное, начав кукарекать - это себя не уважать. Спорить и учится - это основа разумности. Кукарекать про себя и лизать жопу - основа заедушных макак. Кем тебе быть - выбирай сам, но не смеши мои тапки своими недовыводами со дна окияна.


В этом суть - вы игнорируете реальный мир, забившись в свой жалкий мирок жополизства, расглагольствуя на одни и теже бесполезные, изимодные темы. Нихрена из своих разговоров не вынося, как и из своей "работы".
ava
akizelokro | 11.10.2013, 07:22 #

extern vector <tstring *> * your_comments;
extern vector <tstring *> my_comments;


void holywar ()
{
  while(1)
  {
   // thread-safed block of discussion
   //...
   for ( size_t i = 0; i < your_comments->size(); i++)
   {
       tstring * ptstr = your_comments->at(i);
       std::cout << *ptstr << std::endl;
       delete ptstr;
  }
  your_comments->clear();
  // ....
  // end of thread_safed block
   // thread-safed block of discussion again
    //...
    for ( size_t i = 0; i < my_comments->size(); i++)
    {
       tstring * ptstr = my_comments->at(i);
       std::cout << *ptstr << std::endl;
       delete ptstr;
  }
  my_comments->clear();
  //...
  // end of thread_safed block
}
ava
bsa | 11.10.2013, 11:46 #
Троллинг и хамство его стиль поведения (судя по форме общения типичный гопник). Его забанили везде, где могли.  smile 

http://www.linux.org.ru/people/o2n3e/profile
http://trinity-core.ru/members/o2n3e.4030/
http://amvnews.ru/index.php?go=Ratings&amp...mp;author=o2n3e

ava
o2n3e | 11.10.2013, 20:04 #
Я рад, что ты осилил гугл, но ты тут говно, которое даже смотреть в мою сторону не достойно, не то-что пытаться меня понять.


У меня нет ни троллинга ни хамства, а в троллинге и хамстве меня обвиняют лишь анскильные сущности типа тебя. Вот тебе банальный пример - твои братья по "разуму" уже пытались со мной спорить и слились, но если бы они могли меня забанить, то они бы это сделали. И отгадай какая бы там была причина? "Я слился как животное, начав кукарекать и спорить даже не почитав мануалы, если моего уровня не хватает для банального понимания" или "хамит, а мой слив тут не причем". И да, как только я написал ответ твоему брату по "разуму" - мне пришло на мыло: "Вам новое письмо на Личный Ящик, с заголовком "В баню"".


Ваши действия настолько примитивны, а ваша дегродность настолько прогрессирует, что вы уже давно забыли что такое "думать" и признавать свою тупость. Жалкие животные, которые называют ЧСВ'ом "ты идиот", а не "я слился как животное, но я никогда не пойду и не прочту мануал, не признаю этого и скрою совой слив своей жалкой власть на говнофоруме на которую я нализал жоп сдесь не мало".


Ниначто не способные животные не только не могут честно ответить, но и пакастливые, трусливые твари. Это двуличные гады, которые за иллюзию своей "скилловоности" пакастят всем ради жалкой наркоты. Понимаешь в чём дело - мне не нужны ни форумы, ни вы. Вы для меня бесполезны и не вы, ни ваши форумы меня ничему не научат. И особенно меня смешат жалкие сущности, которые меня пугают баней.


Скилл уничтожает желание казаться батькой, батьке не нужно отвечать на идиотские вопросы, не нужна толпа преданных хомячков. Ему не нужно стадо и влась над зверьём для сокрытия своего примитивного уровня. Животное всегда хочет возвысится над кем-то, обычно оно возвышается над самым дном. Т.е. какой-нибудь постстудент-идиот собирает вокруг себя круг студентов-идиотов, и чем их больше, чем они тупее - тем лучше, а это основная аудитория данных форумов/вопросников.


Но т.к. это нисшее существо просто неспособно понять того, что говорит батька. Животным даётся комманда фас и животные начинают кукарекать "хамит, хамит", не замечая ничего. Жалкая тряпка, а пока животные за ней бегают - бох рачин делает своё чёрное дело - избавляется от компромата, минимально переводя тему с матчасти на "хамит", а если бохрачин имеет власть, то это затирание, бананы и прочее.



И да, я не понимаю, как тупой идиот может вообще как-то судить обо мне - я могу судить о говне, а не говно обо мне. Для того, чтобы хотябы мочь помыслить об анализе моих действий - ты минимум должен мочь со мной говорить, а не сливаясь через предложение.


Уже давно пора понять, что основная часть мира и любой остасли идиты, и то, что принимает большенство идиотов не может быть правдой и првильным путём по определению. Любое учение/дело тем ущербней, чем больше на него способны. И чем больше тел в нём - тем более оно бесполезно и ущербно. 
ava
baldina | 11.10.2013, 12:34 #
ну кому ж понравится ЧСВ прогрессирующий в ФГМ
ava
akizelokro | 12.10.2013, 07:13 #
Цитата (o2n3e @  11.10.2013,  20:04 findReferencedText)
Уже давно пора понять, что основная часть мира и любой остасли идиты, и то, что принимает большенство идиотов не может быть правдой и првильным путём по определению. Любое учение/дело тем ущербней, чем больше на него способны. И чем больше тел в нём - тем более оно бесполезно и ущербно. 


Экая новость что люди неодинаковы по своим интеллектуальным или физическим возможностям! Вот один наш спорщик помнит весь свой код, написанный с 95 года, это возможно, я верю, бывает всякое.  smile 
А вообще это уже начинается дискурс с уклоном в философию. Тогда как лучше всё перевести на деньги. Деньгам важен результат, а не твои или мои самомнения. Так что деньги пошли в ООП-концепцию, потому что был нужен индустриальный подход. А не протяжный вопль одиночества гения на скабрезном шарике заштатной космической планеты с достаточно испохабленной экологией и маловнятными общественными воззрениями расы насельников. Да и в космическом масштабе и вопль частного гения, и сама планета - малосущественные подробности для вселенского масштаба Универсума.

И оператор new/delete функционально даже не близко malloc/free. Потому что в общем случае может быть всё, что угодно.  smile 



ava
o2n3e | 12.10.2013, 09:41 #
Ты мне выдал очередную портянку бреда. Естественно производить говно и впаривать говно намного выгоднее, причем не тебе, как говнарю за еду, а твоему дяди. Что ты мне этим хотел доказать? И да, ты даже не понимаешь что такое "интеллектуальные возможности" и в чем они выажаются, поэтому не тебе об этом кукарекать. Для тебя поясню: "интеллектуальные возможности" - это в основном коэффициент обучаемости, т.е. даже если ты тотальный идиот, то до уровня батьки ты можешь дойти, пусть за 100лет, а не 1год как батька.

Именно поэтому низкосортный сброд неспособен на творчество за вменяемое время - он не может писать с нуля каждую вещь, поэтому и придуманно тысячи историй и оправданий об ООП, хотя на самом деле это банальный кастыль, который даёт возможность сброду ваять говно с минимальными способностями к обучению.

Цитата

  И оператор new/delete функционально даже не близко malloc/free. Потому что в общем случае может быть всё, что угодно. 
  

Ты хочешь со мной поспорить? Оператор new/delete "аллокатор" с такой же семантикой, как и malloc/free. Меня ваши анскилльные "всё что угодно" смешат, ибо когда ты осилишь матчасть - у тебя такого говна в глупой шапконосилке не возникнет, ибо в даннос случае нам устройство их не интересно, но даже их устройство одинаково в 99% либцпп.

Идёшь осиливаешь, что такое 
ava
akizelokro | 12.10.2013, 10:07 #
Цитата (o2n3e @  12.10.2013,  09:41 findReferencedText)
Ты хочешь со мной поспорить? Оператор new/delete "аллокатор" с такой же семантикой, как и malloc/free.


Хоп-ператор new/delete можно перегрузить. потом же есть placement new.
И, вообще, что хочу, то и наворочу. У меня более творческий ( развлекающийся) взгляд на мир, поэтому мне никто не указ.
ava
o2n3e | 12.10.2013, 14:16 #
О как ты слился, только ты наворотишь реализацию, а семантика у него будет такая же. dealloc(alloc(size)); И да, для тебя поясню - malloc()/free() тоже можно перегрузить, только семантика у них не изменится. Она изменится только тогда, когда ты изменишь поведение - т.е. превратишь их в иную сущность с именами new/delete, но если ты это сделаешь - всё стл у тебя отвалится, да и удачит ебе в стл поменять аллокатор.


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


Творческий вгляд, никто не указ - это выбор наиболее мощного и фичастого ЯП, а такйо ЯП только один - сишка, вернее гнусишка. Творчество не совместимо с анальным рабством, в которое тебя вгоняет гнилой плюсовый обвес в виде стл, стандарта и прочего говна. Вобщем - не противоречь себе, признайся и исправся, либо не приписывай себе того, чего у тебя нет.
ava
o2n3e | 12.10.2013, 14:23 #
А ну и да, производить говно в какой-то степени выгодно и тебе, ибо чем в среднем ниже качество товара на рынке - тем менее квалифицированная рабсила нужна, а это значит, что тебе надо приложить меньше сил для самообучения. Чем менее квалифицированная рабсила - тем дешевле товар, а чем дешевле товар - тем он популярней, особенно у глупых потребляек( можно бырышь снимать выше, который можно вложить в расширение говнопота, путём убеждение потребляя в нужности им твоего говна). По этой причине тебе и работу найти проще, ибо потоки говна в мире текут с такой скоростью, что говнари нужны всегда и исбытка на рынке их никогда не будет.
ava
akizelokro | 12.10.2013, 15:12 #
Цитата (o2n3e @  12.10.2013,  14:16 findReferencedText)
Творческий вгляд, никто не указ - это выбор наиболее мощного и фичастого ЯП, а такйо ЯП только один - сишка, вернее гнусишка. Творчество не совместимо с анальным рабством, в которое тебя вгоняет гнилой плюсовый обвес в виде стл, стандарта и прочего говна. Вобщем - не противоречь себе, признайся и исправся, либо не приписывай себе того, чего у тебя нет.


Успокоился?
new/delete в общем случае при перегрузке сможет делать всё что угодно, конструктора/деструктора в ООП показалось мало, так что для большего эффекта предусмотрели и этакие возможности.
Ты здесь попал в большую западню. Потому что тема по сути С/C++ (не стали прописывать подробней), так что ты смог бы столкнуться здесь с вопросами по С++, по С, по ObjectiveC (с классами) и так далее.

И эта..
"Моё кунфу лучше" smile 

ava
o2n3e | 12.10.2013, 15:46 #
Цитата

  Успокоился?
  

И даже сейчас ты слился как дитё.

Цитата

  new/delete в общем случае при перегрузке сможет делать всё что угодно
  

Ты что такое дно, а? new/delete - это банальные имена функций, такие же как и malloc()/free(). И с ними тоже можно делать всё, что угодно. Ничего не предусмотрели, глупое ты существо. Ну переделай мне new/delete в инкримент/дикремент - отвалится все, начиная от стл заканчивая твоими портянками. Ты несёшь тотальную херню.

Цитата

  Ты здесь попал в большую западню. Потому что тема по сути С/C++ (не стали прописывать подробней), так что ты смог бы столкнуться здесь с вопросами по С++, по С, по ObjectiveC (с классами) и так далее. 
  

В какую западню я попал? Ты решил посмешить мои тапки? Несмотря на то, что я призераю такое говно как С++ - я знаю о нём больше, чем весь тот сброд, что тут тусуется. ObjectiveC - это вообще не ЯП, а говно чистой воды. Тотальная бесполезность - я не знаю даже насколько надо упротся, чтобы юзать это говно - это для животных, которые ваяют изимодное говнище под айпонт. Ничего сложнее студподелок на нём не написанно.


Ты мне будешь отвечать на мои вопросы, либо сольёшься уже нахрен. Каждый раз ты сливаешься с темы, переводишь её в говно и сводишь к ереси, которую ты строчишь мне в ответ.

Цитата

  И эта..
  

Твой кунгфу говно, а ты ничто. А уж твои детсадовские сливы просто умиляют. Твои познания матчасти на днище галимом, ты постоянно свичишь темы с матчасти на демагогию. Я тебе твой сосед по парте - для меня ты говно до тех пор, пока я не услышу от тебя вменяемых ответов. А уж жалкими попытками спорить со мной, при этом я сливаю тебя левой пяткой во всём - очень сильно показывают уровень твоего "кунгфу" балабола. Вперёд, только не со мной.
ava
NoviceF | 12.10.2013, 16:19 #
Цитата (o2n3e @  12.10.2013,  16:46 findReferencedText)
new/delete - это банальные имена функций, такие же как и malloc()/free(). И с ними тоже можно делать всё, что угодно.


Можно перегрузить malloc()/free() для конкретного класса?
ava
o2n3e | 12.10.2013, 17:14 #
В сишке нет никаких говноклассов, да перегрузить можно для "конкретного класса". И да, это не нужно. Вы неспособны написать вменяемый аллокатор, а вменяемый аллокатор неспособен работать ни с вами, ни с вашими говноклассами. Поэтому жри что дают и не выпендривайся мне тут.
ava
akizelokro | 12.10.2013, 16:59 #
Цитата (o2n3e @  12.10.2013,  15:46 findReferencedText)
ы что такое дно, а? new/delete - это банальные имена функций, такие же как и malloc()/free(). И с ними тоже можно делать всё, что угодно. Ничего не предусмотрели, глупое ты существо. Ну переделай мне new/delete в инкримент/дикремент - отвалится все, начиная от стл заканчивая твоими портянками. Ты несёшь тотальную херню.


Вообще-то есть глобальные new/delete. Если их переделать, то да, будет забавно. Если же перегрузить new/delete для моего произвольного класса, то тут ситуация несколько другая.
И эта..
Пешши ищщо!
ava
o2n3e | 12.10.2013, 17:11 #
Цитата

  Вообще-то есть глобальные new/delete. Если их переделать, то да, будет забавно. Если же перегрузить new/delete для моего произвольного класса, то тут ситуация несколько другая. 
  

Датычё, ты мне открыл глаза. Ты их переопределить можешь только на аллокатор, инача будет будет "весело" - слив намберван. Ну и да, как это доказывает то, что маллокофри - это ващенеоператорnew/delete? Давай, жги.

Цитата

  Пешши ищщо!
  

Я буду писать, если ты перестанешь быть шутом. Мы уже поняли, что ты слился в говно и строить мне шута, аля "я дебил - мне можно нести херню, я играл с тобой, а ты купил - затрален лалка, ха-ха-ха". В школу.
ava
akizelokro | 12.10.2013, 17:22 #
Вопрос, ты чего такого успешного написал, если не секрет, на голом Сишнике? (такое сделать возможно, не спорю, так что ты сделал?)
ava
o2n3e | 12.10.2013, 18:24 #
Меня не интересует написание изимодного говна на сишке. Илитный код - слишком дорог для ширпотреба, а не ширпотреб опулярен и "успешен" никогда не будет. Сишка - это она. Я не собераюсь сливать своё драгоценное время на ваяние ненужного говна - я лучше полежу на диване.


Я виртуоз - я пишу код ради кода, не более. Мой код ценен не тем, что он делает( хотя делает он только полезные вещи) - а тем, как он это делает. Я пишу идеальный код на грани возможностей ЯП, железа и человека. Я не программист, не работаю программистом за еду, я не пишу ненужное говно. Я просто Царь сишки. В мейстриме этого мира все сложные вещи, которые возможно мне были бы интересны - нужны лишь для содержание немощей типа вас, поэтому нам не попути.


Мы можем с тобой посоревноваться, если ты хочешь увидить разницу между нами, а так да - я не делаю "успешных" среди дна хреновин, население которого даже не способно понять всей понтовости моего кода. Так же, как меня не интересует понтовость среди вас, так же как и ваши форумы.


Я представитель нине почившей касты реальных сишников, не того говна, что ты понимаешь под сишниками, а реальных, осиливших матчасть сишников из бородатых годов. Причем бородатые года - это не та шешура, что почитают ваши говнори, о которых пишут в ваших библиях и которые пишут ваши библии - всё это бездарный сброд, который как вы - пытается выехать не на скилле, а на лизании жоп бездарям.

Ниодна из ваших ООП-икон не написала ни строчки сложного кода, никогда не осиливала матчасть выше среднего уровня - являясь жалкой породией на что-то илитарное. Меня смешит, когда бездари рассуждают о "написал", "успешности" - это должен говорит и об этом должен рассуждать не питушок, не осиливший написать даже изимодный говностл, а пацаны реально осилившии матчасть.


Тыж мне кукарекал про страуструпа, дак что написал страутруп? Да нихрена, надстройку из говнокода над сишным конпелятором, которую никто в глаза не видел? Или что? Что написал ты? И ведь кукарекушки типа тебя рассказывают мне о том, что мне надо писать и чего я не написал.


Мне, могущему левой пяткой втоптать в грязь 98% говнарей в этом мире -  лень даже ради знамения писать изимодное говно - ну да, диагноз ЧСВ.


И да, я теоретик, такой же как и твои иконы, только знаешь какая между нами разница? Я балаболю не потому, что я не осилил писать код - я балаболю лишь потому, что я осилил писать "илитный" код "любой" сложности, и знаю как его писать лучше. Ну и ещё, даже сишка стала слишком "узка" для меня, поэтому с написания кода я перешел на концепции и построение не идеального кода на лучшем языке, а построение идеального кода на идеальеом языке.


А т.к. отцу нужна автоматизация, которая не работает за него, а помогает ему работать - то наши с вами дороги расходятся, и я не интересен вам, а вы ен интересны мне. Поэтому твои разговоры об успешности меня смешат.


ava
akizelokro | 12.10.2013, 18:42 #
Цитата (o2n3e @  12.10.2013,  18:24 findReferencedText)
Я виртуоз - я пишу код ради кода, не более. Мой код ценен не тем, что он делает( хотя делает он только полезные вещи) - а тем, как он это делает. Я пишу идеальный код на грани возможностей ЯП, железа и человека. Я не программист, не работаю программистом за еду, я не пишу ненужное ###. Я просто Царь сишки. В мейстриме этого мира все сложные вещи, которые возможно мне были бы интересны - нужны лишь для содержание немощей типа вас, поэтому нам не попути.



Понятно, старые понты.
Мне бы твои проблемки (я бы решил в в три раза быстрее и эффективнее). Ладно, трещи дальше.
ava
NoviceF | 12.10.2013, 20:38 #
Цитата (o2n3e @  12.10.2013,  19:24 findReferencedText)
 Так же, как меня не интересует понтовость среди вас, так же как и ваши форумы.

Тогда что ты здесь делаешь?
ava
o2n3e | 12.10.2013, 22:30 #
И ты, уже слившись продолжаешь кукарекать и всё никак не прекратиш свои жалкие попытки поймать меня. Я иногда захожу за горефорумы, когда мне нефиг делать, либо я натыкаюсь на идиотский вопрос/ответ и прочее. Что конкретно я тут делаю - я даю вам, низшим существам, шанс на искоренение гнилой ереси в себе, ну и отвечая на ваши портянки своими пацанскими ответами. Я вам жертвую свою время, ибо я добрый. Авось среди вас идиотом найдётся хоть один, который подумает и выйдет на путь истинный из заедушно-анскильной тресины говна, в которой вы, жалкие сущности, прибываете. Как-то так.



Ну и да, негоже тереть мои крутые комменты, где я так подробно делюсь с вами секратами дедукция-мастера. Мне не трудно - я напиши ещё один, только он будет уже покруче. Вы на это наеетесь? Ну и да, почему именно этот коммент? Он был самым безабидным из всех, разве что в нём эта кукарекушка явней всех слилась.
ava
akizelokro | 13.10.2013, 07:36 #
Цитата (o2n3e @  12.10.2013,  22:30 findReferencedText)
И ты, уже слившись продолжаешь кукарекать и всё никак не прекратиш свои жалкие попытки поймать меня.


И обучаюсь я раза в два быстрее, чем ты.

ava
o2n3e | 14.10.2013, 16:08 #
Ой какая ты смешная, лалка. Ну смотри, ты говнякаешь, хреначишь где-то за еду и сливаешься в говно мне, который никогда ничего не делал, не говнякал и прочее. Гдеж твоё обучение, балабол. Обучался бы ты - ты бы пытался отвечать мне, а не съезжать с темы и юлить как говно.


Ты будешь потеть, зубрить, хреначить, но это тебе не может. Ты будешь всегда на дне, а я нихрена не буду делать, потеть, etc и буду не на дне, знаешь почему? По одной простой причене - ты не признаешь того, что ты говно. Ты дальше будешь кривляться, юлить, вгоняя себя и дальше в иллюзию твоих мечтаний. Ты будешь потеть, но не ради скилла, матчасти, нового, ты никогда не пойдёшь доконца поклав на всё - ты говно. Ты будешь потеть как животное, но лишь ради жалкой иллюзии казаться большим, чем ты есть.


Причем ты даже не будешь реально потеть - ты будешь даже мнимо потеть, ибо даже мне ты не пытаешься казаться кем-то большим, чем кукарекаюший студент-говнарь.


Погляди на себя, глупышка. Ты вылез, пытаясь поправить меня и показаться кем-то, но на следующем же ответе ты забил на тему - она тебе не важна. Ты не пытался защищать свои знания, свой мир - ты слился как говно. Твои знания не нужны тебе, ты их юзаешь ради выпендрёжа. И смотри дальше - ты не ответил ни на один мой вопрос, ты даже не пытался поспорить со мной. Ты даже не пытаешься защитать свой говнарьский образ жизни. Почему? Потомучто ты животное, ты поклал на всё, что важно человеку - поэтому ты ничто.


Ты даже балаболить нормально не способен. Научись хоть балаболить, я уж о скилле онтопик не прошу. 
ava
akizelokro | 14.10.2013, 16:10 #
Это что за белый шум?) smile 
ava
o2n3e | 15.10.2013, 14:42 #
Ко-ко-ко, я слилосё как говно, но я продолжаю вести себя как тотальный идиот. На что же я надеюсь, на последнее слово? На защиту других идиотов? Ну пытайся.
ava
EgoBrain | 09.07.2014, 04:47 #
Добрый день!
Объясните пожалуйста что происходит, когда я вставляю выражение внутрь квадратных скобок оператора new?
ava
Lukkoye | 09.07.2014, 05:32 #

auto* ptr = new type[  expression ];


Это - попытка выделить блок памяти размером минимум sizeof( type *expression ) байт.
(реальной памяти может быть выделено чуть больше, но не меньше, либо не выделено вообще).

В случае успеха, будет произведена попытка запуска конструкторов в количестве expression штук.
Таким образом будет создано expression штук объектов, каждый последующий следом за предыдущем и все - в этом не прерывном блоке.
(если конечно из конструкторов не полетят исключения, или что-то подобное не прервет процесс создания объектов).

Иными словами создается массив объектов, который размещается в куче.




const size_t expression  = 10;

int array[expression ]; //<---- создали массив из 10 объектов типа int на стеке

auto* ptr = new int[  expression ]; //<---- создали массив из 10 объектов типа int в куче

ava
EgoBrain | 10.07.2014, 04:19 #
Lukkoye, спасибо за ответ. В итоге сам разобрался smile Все по логике.
Please register or login to write.
Firm of day
Вы также можете добавить свою фирму в каталог IT-фирм, и публиковать статьи, новости, вакансии и другую информацию от имени фирмы.
Подробнее
Contributors
advanced
Submit