Задать вопрос
  • Почему нет ругани на модификацию стороннего куска памяти?

    Запись по невалидному указателю - это UB (undefined behavior), т.е. по стандарту произойти может что угодно. На деле просто пишется туда, куда сказали, что может вызвать как структурное исключение (SEH, не путать с обычными исключениями C++) на Windows или SIGSEGV на Unix'ах, а может и не вызвать, если по данному указателю запись возможна. Т.о. try-catch не решение по двум причинам:
    1. Исключение даже если и будет, то не C++ (хотя, к примеру, студия позволяет SEH'и ловить "обычным" catch)
    2. Исключение не гарантировано

    Проверять, что память доступна для записи в общем случае бессмысленно, так как она вполне может быть доступна, но по адресу лежит не массив, а какие-то другие данные, которые тем не менее можно перезаписать, поломав программу. Решение заключается в том, чтобы не писать туда, куда не нужно, т.е. сводить к минимуму манипулирование голыми указателями без должной осторожности и понимания.
    Ответ написан
    24 комментария
  • Для чего нужен процессор i7?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Игрушки, обработка видео, графика... это видиокарта. Программирование (сборка, компиляция), вычисления... тут нужен i7 (больше ядер, больше кеш процессора).

    Да и на играх и прочем тоже будет прирост производительности, просто не такой существенный.
    Ответ написан
    5 комментариев
  • Сетевая игра на Android, как писать?

    begemot_sun
    @begemot_sun
    Программист в душе.
    У вас должен быть клиент, сервер и протокол взаимодействия клиента с сервером.
    В простейшей части клиент соединяется с сервером, авторизуется и тут уже вступает игровая-бизнес логика.
    Сервер принимает соединение, авторизует игрока (идентифицирует его) и тут опять же вступает игровая-бизнес логика на сервере.
    Протокол однозначно должен идентифицировать все действия клиента и все ответы сервера.
    Т.о. последовательно общаясь сервер и клиент реализуют игровую ситуацию.

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

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

    В целом вот так. Если будет нужна помощью в Erlang, или написании такого сервера могу помочь. В том числе и ответами на данном ресурсе.
    Ответ написан
    Комментировать
  • Как перенести apache на другой компьютер?

    alexclear
    @alexclear
    A cat
    Поставить пакеты для Apache2, PHP, MySQL.
    Проанализировать конфигурационные файлы на старом месте, повторить их на новом, с учетом отличий старого места от нового.
    Не забыть привести в соответствие php.ini
    Снять дампы баз, создать базы на новом месте, залить дампы.
    Создать соответствующих пользователей БД с соотв. правами на новом месте.
    Ответ написан
    6 комментариев
  • Насколько реально отреверсить dll на cpp?

    alexclear
    @alexclear
    A cat
    Она будет очень далека от оригинала, даже если подобное и удастся. Во-первых, компилятор применяет оптимизации при создании машинного кода. Во-вторых, если DLL собрана без debug symbols, то оригинальные имена переменных в ней вообще не хранятся. В-третьих, если при разработке были использованы шаблоны (templates), то восстановить оригинал не удастся вообще, компилятор вычисляет темплейты на этапе компиляции, в рантайм эта информация попадает уже преобразованной.
    Ответ написан
    Комментировать
  • Что не так с векторами?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Компилятор выводит ошибку.
    ...
    Опять же выводит ошибку.
    В чем проблема?

    В том, что вы не привели нам текста ошибки.
    Наугад, ваш компилятор не поддерживает C++0x
    Ответ написан
    6 комментариев
  • Почему у неинициализированной переменной значение 0?

    @Lol4t0
    Потому что так сложились звезды. Потенциально, вывод может быть любым, потому он и undefined. Ноль - входит в множество всевозможных вариантов
    Ответ написан
    1 комментарий
  • Как организовать проект?

    cha-cha
    @cha-cha
    Может так?
    Школа создает свой субдомен и кладет туда обычный iframe.
    Ответ написан
    Комментировать
  • Как организовать проект?

    ифрэйм, либо rest api + клиент на js.

    инклуд php файла это довольно плохо в случае с удаленными серверами
    Ответ написан
    2 комментария
  • Можно ли убрать этот ватермак?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Чисто теоритически - возможно но думаю дешевле будет нанять школьников/студентов, которые будут вручную это добро обрабатывать.

    updated:
    google images умеет искать по изображению.
    Ответ написан
    Комментировать
  • Почему C++ программа может работать с некорректно выделенной памятью?

    Nirail
    @Nirail
    Дайте мне повод и я во все решу
    Такое вполне возможно:
    Компилятор создал объект A а в B* b записал "мусор".
    "Думая" что по адресу *b находится объект класса B он читает и записывает логическое значение куда-то в памяти (так как простые методы getFlag и setFlag скорее всего оптимизируются на простое обращение к атрибуту flag и это объясняет падение при отладке). При вызове сложной функции, собственно, и возникает SegFault.
    Ответ написан
    2 комментария
  • Как реализовать клик мышью каждые 5 сек (С++)?

    @Kyberman
    Если приложение оконное, то лучше использовать таймер. Тогда можно и избежать зависаний от sleep, и многопоточность не понадобится.
    По F12 тогглите флаг и, в зависимости от его значения, вызываете либо SetTimer, либо KillTimer.
    Если приложение без GUI, то решение @GavriKos подойдёт.
    Ответ написан
    Комментировать
  • Как выловить ошибку в приложении QT?

    EvgenijDv
    @EvgenijDv
    C/C++ programmer
    При отладке не получалось просмотреть больше одного вызова чтения, после него вылезал SegFault. Но при "Запуск без отладки" все работало, поэтому забил.

    facepalm.png
    Ответ написан
    Комментировать
  • Чем создать список ссылок в .txt?

    Taraflex
    @Taraflex
    Ищу работу. Контакты в профиле.
    В консоль браузера вбиваете
    for(var i=1;i<1001;i++){console.log("www.host.com/folder1/"+i+".jpg")}

    Потом копируете вывод в файл
    Ответ написан
    Комментировать
  • С какой скоростью работают поисковые боты?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    просто для больших сайтов это пшик. Просто как еще один пользователь который лазает по страницам.
    Ответ написан
    2 комментария
  • Как убрать проверку пароля через md5?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Правильно, нафиг надо использовать md5 для хэширования паролей. Только sha512 + несколько циклов хеширования с солью.

    Ваша функция не проверят ничего, оно тупо хеширует. Возвращайте то же значение что и на входе. А вообще - если у вас с этим затруднения, то не стоит вообще это трогать либо пытайтесь сделать это самостоятельно. Либо фрилансера нанимайте.
    Ответ написан
    Комментировать
  • Как убрать проверку пароля через md5?

    @iznaur
    может это вам нужно свои пароли начать хэшировать?
    Ответ написан
    2 комментария
  • В чем различие между классом, объектом и экземпляром?

    @vdem
    Допустим, есть класс Человек. У него есть методы (прыгать, бегать, кушать, спать), свойства (рост, вес, - неинициализированные). Есть Вася и Маша, экземпляры класса Человек. Соответственно они имеют все те методы, которые объявлены в классе Человек, их свойства уже инициализированы при создании экземпляра.
    Человек вася = новый Человек(200, 50);
    Человек маша = новый Человек(150, 120);
    Ответ написан
    4 комментария
  • Как присвоить указателю адрес двумерного массива?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    char *test[255][100] -- это двумерный массив указателей на char.
    А вот char (*test)[255][100] -- это указатель на двумерный массив char, чувствуете разницу?

    По вашему вопросу:
    char (*test)[100] = (char (*)[100]) 0xDEADBEEF;
    Ответ написан
    2 комментария
  • Какие сервисы поиска членов команды существуют?

    DmitriyEntelis
    @DmitriyEntelis
    Думаю за деньги
    @Aleksashka1990 отвечаю по делу:

    1) Все существующие сервисы поиска членов команды жестко монетизированы за счет работодателей.
    2000 рублей на хантим это очень недорого. подписка на superjob может стоить десятки тысяч рублей в месяц.
    2) Все существующие сервисы поиска членов команды наполнены аудиторией которая четко хочет денег. Т.е найти вариант "плачу ниже рынка но даю долю в ООО" еще возможно, найти вариант "партнерство без денег" - нереально
    3) Найти людей на условиях "партнерство без з/п" возможно.
    Но для этого надо четко сформулировать ряд моментов:
    - как образуется прибыль проекта, когда это происходит, кто за это ответственен
    - что работник получит за работу в команде
    - как это будет оформлено юридически
    - в какой момент работник имеет право выйти из команды с сохранением доли
    - как распределены обязанности в проекте, кто за что отвечает. доли должны распределяться сообразно важности и объему работ. особое внимание уделите своему вкладу.
    предложение
    У меня есть опыт привлечения рекламодателей и классный дизайнер. Нужен разработчик за 50% будущей прибыли
    выглядит гораздо адекватнее чем
    У меня есть классная идея, нужен разработчик за 50% будущей прибыли

    После того как все эти ответы сформулированы - отправляйтесь на региональные форумы, доски объявлений (offline :-) ) физ-мат вузов и школ, online форумы разработчиков любимого языка/фреймворка, итд.
    Готового ресурса в интернете - нет.

    Надеюсь помог.
    Ответ написан
    Комментировать