Adamos: не совсем правда:
1. стандартные функции предоставляются libc, gcc предоставляет всякие колбеки и первоначальный инит-код (попробуйте собрать с опциями -nostdlib -nostartfiles или их комбинации).
2. то, что делается в п.1 делается всеми компиляторами :)
3. подключение заголовочника != подключению библиотеки (случай header-only не рассматриваем).
4. прототип функции ты обязан указать компилятору. Иначе он на тебя обидится.
MiiNiPaa: я тоже не скуплюсь на ассерты: если есть возможность ударить по пальцам на этапе компиляции - лучше ударить. Если в рантайме - то как можно раньше.
Про new[0]: stackoverflow.com/questions/1087042/c-new-int0-wil... - тут ответ с отсылками к стандарту.
new[1] валидное выражение:
auto *ptr = new char[1];
ptr[0] = 0x00; // ok
ptr[1] = 0x01; // fail
delete[] ptr;
другое дело - зачем? но если в generic виде - вполне.
Relike: в частном порядке уже работа, за консультации беру 500р/час (неполный час - полностью). Если устраивает, пишите hatred собака inbox.ru. Скооперируемся по времени, а то уже час ночи, а завтра на работу.
Если нет, то достаточно добавить код:
- Структуры Three
- Функций: add(), first(), Show()
Ассершн сработал, значит предположение правильное - нулевой указатель. По-прежнему мне не ясно откуда он срабатывает. Судя по всему в той строчке, которую я показал:
one = del(q); // на входе *q будет валидным, но на выходе может быть nullptr, тогда:
two = del(q); // логично, что фейлится.
Но это если дело в createThree(), если же срабатывает в Show() то нужно смотреть что там делается.
> не ясно как это включить только в окне dota_linux
даю наводку: смотри параметр --window WINDOW у xdotool. Узнать хендл окна можно, к примеру: xwininfo -root -tree
нужно только узнать какие уникальные имена/класс окна у доты. Например, у терминала в Cinnamon:
0x4613112 "Terminal": ("gnome-terminal" "Gnome-terminal") 1920x1023+0+32 +0+32
его вычленил как-то так:
id=`xwininfo -root -tree | grep Gnome-terminal | awk '{print $1} | head -1'`
проблема выбрать правильное окно из множества, но не думаю, что две доты будет запущено :)
Если развивать дальше, можно даже придумать как задетектить - в фокусе окно или нет.
Естественно, всё это будет проще поместить в скрипт, и уже скрипт прописать в xbindkeys.
Relike: неплохо. Но на минимально-рабочий код не тянет. Половины функций не хватает, что бы скомпилировать и воспроизвести. Как минимум поставьте перед ПОМЕЧЕННОЙ СТРОКОЙ
assert(pbeg);
assert(*pbeg);
Если на одном из них будет вылет в рантайме - вы подсовываете нулевой указатель. Если вылета не будет - вы подсовываете мусор. А это, как минимум, говорит о том, что что-то не проинициализировали.
кроме того, вывод стек-трейка не приведено. А так же не показана функция Show().
По той информации, что приведена: у вас разыменование нулевого указателя. Но где вы точно ошиблись, я не могут сказать без минимально-компилябельного примера.
Про недорого я не писал. Я писал про "минимальную цену". Я не говорю о цене в 300 рублей. Вообще все варианты варьируются от 5к до 14к. Понятно, что в такой градации "минимальная цена", будет 5к, 6к, ну, может быть, 7к. Ну или пусть будет <=100$
@Taraflex вы, видать, не пытались скармливать vlc 30 входных потоков и обеспечивать раздачу более 1000 клиентов. При 40 потоках он просто начал крешится при старте, отжирая немеряно памяти. Wowza сейчас, на том же сервере, тянет 90 камер. Я всё понимаю, но вопрос был задан конкретно про wowza, если бы меня интересова nginx-rtmp, crtmpd, vlc или же вариант с gstreamer, а то и flusonic, я бы спросил про них.
Для этого проекта IDEA и не нужна. Я бы это и выбрал, но оно не умеет RTSP/RTP PUSH (что бы по RTSP вещать на него) и отдачу RTSP. Вовза умеет, причём, обеспечивает задержки меньше чем crtmpserver.