Задать вопрос
  • Что именно значит ошибка?

    petermzg
    @petermzg
    Самый лучший программист
    Это значит, что состояние view вы можете обновлять только из потока в котором view создан. Как правило - основного.
    Передайте параметры в основной поток и из него обновите view
    Ответ написан
    Комментировать
  • Управление памятью в С++?

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

    В С++ бывает 2 типа использования памяти.
    1. На стеке. Такую память по особому выделять не нужно и освобождать тоже.
    Пример:
    int a = 3;
    2. В "куче". В этом случае уже вы отвечаете за выделение и освобождение памяти.
    Работает через оператор new. Или функции malloc, calloc и т.п.
    int* p = new int;
    delete p;
    Ответ написан
    Комментировать
  • Как работает mono под unreal engine?

    opium
    @opium
    Просто люблю качественно работать
    никак
    Ответ написан
    Комментировать
  • Как найти из 4 чисел, где 3 равные между собой одно не равное, за один раз?

    @deliro
    В 4-ех равных числах нет одного не равного.
    0 операторов сравнения. Я молодец?
    Ответ написан
    1 комментарий
  • Сохраняется ли конфиденциальность в GoogleTranslate?

    dimonchik2013
    @dimonchik2013
    non progredi est regredi
    официально нет
    не парьтесь

    доступ к мылу - куда бОльшая дыра
    Ответ написан
    Комментировать
  • Как работает C#?

    Nipheris
    @Nipheris Куратор тега C#
    А откуда берётся этот MSIL? Куда компилируются .cs?

    cs компилируются компилятором. Есть стандартный csc, поставляется вместе с .net framework (НЕ со студией). Это "классический" компилятор от MS, написан на C++, с закрытым исходным кодом. Такой же есть и для Visual Basic. Кроме них есть еще Roslyn-компиляторы C# и VB, они open-source, их главное отличие в том, что они сами написаны на управляемых языках. Это значит, что у вас есть compiler-as-a-service. Это, в свою очередь, значит, что если вы хотите написать тулзу, обрабатывающую тем или иным образом исходный код, например на C#, вам не нужно самому писать парсер/компилятор, вы можете подключить модули Roslyn-компилятора и пользоваться ТЕМ ЖЕ компилятором (лексером/парсером/etc), что и используется непосредственно при сборке приложения. С классическим компилятором так не получится, он представляет из себя черный ящик: cs на входе, сборка на выходе.

    Далее будем считать, что не учитываем в рассуждениях технологию .net native.
    в каком моменте тогда работает виртуальная машина

    она работает в момент запуска exe.
    почему мы получаем на выходе .exe

    в этом вопросе часто возникает путаница. Дело в том, что дотнетовские exe и dll - это т.н. сборки (assemblies), и они содержат метаданные и MSIL (!) исполняемый код. То, что у них расширения exe и dll - это потому, что MS для повышения совместимости и удобства использования, упаковала их в формат PE. Чтобы .net приложения можно было запускать также, как и нативные. НО реально в exe-файле есть только небольшой загрузчик, который запускает CLR, просит загрузить текущий файл как дотнет-сборку и передать управление на метод-точку входа. Почитайте про сборки в хорошей книге, и скачайте dotPeek, посмотрите что внутри дотнетовского exe. Это совсем не то, что в "обычном", нативном exe.

    В мире C# существуют также такие понятия как .NET, Mono, Roslyn и т.д., можете ли вы структурированно разъяснить их смысл?

    .NET это название и бренд платформы, .NET Framework, а теперь и .NET Core - реализации платформы от MS, Mono - open-source реализация НЕ от MS. .NET FW работает только на винде, .NET Core и Mono и на других платформах. Про Roslyn уже упомянул.
    Ответ написан
    Комментировать
  • Как работает C#?

    Рекомендую книгу Рихтера "CLR via C#"
    Ответ написан
    Комментировать
  • Какой из дистрибутивов Linux подойдет для веб и java?

    erniesto77
    @erniesto77
    oop, python, php, js
    абсолютно любой
    Ответ написан
    Комментировать
  • Какой из дистрибутивов Linux подойдет для веб и java?

    @cthulhudx
    Ubuntu или Linux Mint
    Ответ написан
    Комментировать
  • Что будет за публикацию уязвимости/бага в публику?

    Ommonick
    @Ommonick
    qa+dev (scala, golang, ts/js, api, grpc)
    Обычно делается так, багхантер находит уязвимость, изучает ее. Затем уведомляет тех, в структуре кого эта уязвимость находится, ждет некоторое время, если нет сподвижек по устранению уязвмости - публикует статью на тематическом ресурсе, пользуется уязвимостями, забивает на это дело - все в рамках его воображения.
    Однако ответственность за действия присутствует. Если в договоре связи указаны пункты о нештатных действиях относительно услуг связи, то за это могут и бо-бо сделать. Лучший профит в первую очередь - составление статей, получение опыта и славы специалиста, а уже потом выгода, полученная на оплошностях.
    Ответ написан
    Комментировать
  • Ставить ли фигурные скобочки?

    aminought
    @aminought
    Правилом хорошего тона считается постановка фигурных скобок в любом случае. Для вдохновения можете прочитать вот эту статью: Исключительная красота исходного кода Doom 3
    Ответ написан
    2 комментария
  • Есть ли IDE способная создавать консольные приложения Win32 из по Linux(кроме Visual Studio и Eclipse)?

    gudvinr
    @gudvinr
    Code::Blocks, QtCreator
    В обеих возможно настроить кросс-компиляцию посредством, например, mingw.
    Ответ написан
    1 комментарий
  • Есть ли готовая библиотека загрузчика для C#?

    @vilgeforce
    Раздолбай и программист
    Дозагрузка зависит от сервера, насколько я помню. А так curl.
    Ответ написан
    Комментировать
  • Поиск решения задачи, не похожей на предыдущие. Есть ли идеальный алгоритм?

    @dmitryKovalskiy
    программист средней руки
    Вот вы вроде опытный программист, Senior. Но хотите найти "идеальный" алгоритм для решения любой задачи. Я думаю что если бы имелось решение - задача про P/NP давно была бы разобрана, а миллион долларов пропит. К сожалению ИТ-индустрия, за счет зарплат выше среднего по всему рынку труда, привлекает к себе людей, не знакомых даже с самим понятием алгоритма. Умные специалисты рассказывают что "математика не нужна", а "высшее образование только мешается". Как итог мы имеем определенный пласт людей, прочитавших пару книг по синтаксису, решивших задачу обхода конем и уже считающих себя программистами. Я вот с завидной регулярностью на данном ресурсе нахожу вопросы вроде "мне 16 лет, как заработать фрилансом программиста". Да возможно человек - Билл Гейтс или другой гений отрасли, но тогда вряд ли бы он задавал здесь вопрос. Да, может быть разная финансовая ситуация и людей вынужденно толкают за заработком. Но итог - практически полное отсутствие подготовки в области алгоритмов, архитектуры, паттернов проектирования и прочее, а зряплату уже хочется хорошую. Я сам не без грешен в этом отношении. Желаю вам терпения и талантливых junior-ов. Но их будет меньшинство.
    Ответ написан
    2 комментария
  • Когда неявно вызывается деструктор?

    Olej
    @Olej
    инженер, программист, преподаватель
    Прошу перечислить возможные варианты

    Вариант единственный: деструктор в C++ вызывается ровно в тот момент, когда уничтожается объект.
    Всё. Точка.
    Никаких других "вариантов" нет и быть не может, потому что в C++ не может быть сборки мусора.

    А вот когда объект уничтожается - тут могут быть некоторые варианты: явное и неявное уничтожение, уничтожение по выходу из блока, уничтожение по эпилогу программы... Здесь разница уже в том. что называют "время жизни" объекта.
    Ответ написан
    4 комментария
  • Что делать после изучения С++?

    1. По своему, не так уж чтобы очень богатому, но тем не менее опыту скажу, что простое чтение книг или форумов, просмотр видеоуроков и т.д. глубокого понимания не дает. Важна еще практика. Лучший способ, который я открыл для себя - придумываешь интересную для себя задачу, начинаешь ее реализовывать. Если что то не знаешь - смотришь или читаешь уроки по теме, которая тебя интересует. Не стремись сразу написать что то большое и чтобы все было чисто и красиво, пусть будет криво и убого, главное чтобы работало, ты понимал как это работает и было желание и идеи как это улучшить. Почему такой способ хорош - ты сразу качаешь навыки и в проектировании и в программировании и в планировании задач для себя, так как выучить синтаксис языка это на самом деле основы, есть много других важных тем, в которых важно разбираться, если хочешь писать хороший софт - это и методологии разработки и системы контроля версиями и тестирование и проектирование и многое другое. В начале будет довольно трудно, будет куча нюансов, которые придется решать, но со временем, если не будешь сачковать ты заметишь как вырос твой уровень. Если интересует программирование графики - садись писать свой движок. Собственно, я сам сейчас этим занимаюсь, это была тема моей курсовой и сейчас дипломной работы.
    2. Их много и большинство зависит от задач и здесь важнее общее понимание как работать с чужим кодом, как найти что то по докам и т.д. А по поводу конкретных библиотек - если пишешь на плюсах, то по любому, как уже написали, стоит обратить внимание на STL и желательно еще на Boost.
    3. Только если ты понимаешь какие плюсы ты от этого получишь.
    4. Обновлять софт вообще очень стоит. Про Code::Blocks ничего сказать ничего не могу, но не думаю, что стоит переходить со студии. А вообще, я тебе советую поэксперементировать и попробовать компилировать код без IDE, чтобы понять как происходит процесс компиляции и линковки, это тебе очень поможет (но в реальных проектах лучше выбирать самое быстрое рабочее решение)
    Ответ написан
    2 комментария
  • Почему Visual Studio не открывает файл в момент дебага?

    magalex
    @magalex
    Архитектор распределённых систем управления
    По умолчанию, при запуске проекта из студии, текущей директорией является директория проекта. Поэтому во время отладки программа не находит нужный вам файл (который лежит в другой директории - в папке debug. Это поведение можно поменять в настройках проекта:
    2cf86141b4614fda889c669d8db45009.PNG
    Ответ написан
    1 комментарий