• Почему возникает проблема с указателем в C?

    terrier
    @terrier
    Когда мы заходим в функцию ptrTest указатель testString указывает на начало некоторой области памяти, в которой, как мы понимаем лежит строка "qwe rty uio" (а за ней нуль-терминатор).
    Функция printf, как нам указывает, например, документация своим первым параметром принимает как раз указатель на строку, которую нужно вывести. По этому первый пример работает как работает (правильно).
    Когда вы разыменовываете указатель testString (который, напомню указывает на начало строки "qwe rty uio", то есть на букву "q") вы получаете ascii-код первой буквы этой строки. В вашем случае 0x71. Вы передаете его в функцию printf, интерпретируя как значение адреса некоторой строки, однако 0x71 - адрес невалидный. Вот потому и ошибка доступа.

    В коде я хотел вывести указатель, а потом получить значение, на которое он указывает, путём разыменования.

    Само значение указателя ( то есть число, обозначающее адрес в памяти ) выводим так
    printf("%p\n", testString)
    Значение, на которое он указывает
    printf("%c", *testString)
    - указывает, как мы помним на букву "q"
    Ответ написан
    Комментировать
  • Почему возникает проблема с указателем в C?

    vesper-bot
    @vesper-bot
    Любитель файрволлов
    Тип первого параметра у printf является char*, в итоге строка разыменовывается внутри printf при печати и парсинге шаблонов. Попытка передать *teststring вызывает передачу значения строки, имплицитно преобразованного в указатель, в итоге printf пытается разыменовать 4 символа строки и с закономерным результатом получает AV (access violation, 0xC0000005, segmentation fault core dumped и другие названия).

    Поздравляю с успешным выстрелом себе в ногу. :)
    Ответ написан
    7 комментариев
  • Где найти "вдохновение" на дизайн?

    sergey_st
    @sergey_st
    Для вдохновения отличные сайты: https://www.awwwards.com/ и www.cssdesignawards.com
    Для второго пункта можно использовать, например, https://themeforest.net/ шаблоны там не бесплатные, но и не дорогие.
    Много различных элементов (кнопки/слайдеры/и др.) можно найти на https://codepen.io и https://github.com/ только там желательно ознакомиться с лицензией.
    Ответ написан
    2 комментария
  • Как добавить кастомное свойство существующей структуре?

    А почему не хотите просто создать вот такую структуру?
    struct User {
        Name string
        LastName string
        Connection net.Conn
    }
    Ответ написан
    3 комментария
  • Работа с сокетами, как правильно удалить/закрыть?

    @danforth Автор вопроса
    Проблема была в том, что при запросе os.Stat возвращалась err, и я её проверял на os.IsExists(err), но ведь если файл существует, то err будет nil. Переделал на !os.IsNotExists(err) и получилось удалить через os.Remove("/tmp/app.sock")

    var l net.Listener
    	var err error
    	l, err = net.Listen("unix", "/tmp/app.sock")
    	if err != nil {
    		log.Println(err)
    		if _, err := os.Stat("/tmp/app.sock"); !os.IsNotExist(err) {
    			log.Println("socket in use, trying to delete the socket")
    			err = os.Remove("/tmp/app.sock")
    			if err != nil {
    				log.Fatalln(err)
    			}
    			log.Println("socket file removed")
    			l, err = net.Listen("unix", "/tmp/app.sock")
    			if err != nil {
    				log.Fatalln(err)
    			}
    		}
    	}
    	defer l.Close()
    Ответ написан
    Комментировать
  • Какой выбрать планшета вместо нетбука?

    qlkvg
    @qlkvg
    python backend developer
    Prestigio Visconte V
    4 месяца работал, как часы, потом обновился до 1607, начал тупить и через месяц закирпичился насмерть. Судя по отзывам на 4pda - такое бывает, но не часто. Главное сразу автоматическое обновление системы отключить. По ощущениям - отличная штука. Производительности вполне хватает на интернет и простенькие игрушки. Есть 2 полноценных usb-разъема, т.е. свисток с ethernet'ом зацепить не проблема. Из минусов похабно собранная, хотя и юзабельная клавиатура. Ну и mini-hdmi разъем хлипенький. В целом - за свои деньги достойный аппарат.
    Ответ написан
    Комментировать
  • Какие сейчас есть современные и быстрые DOM манипуляторы на PHP типа PHPQuery?

    Bandicoot
    @Bandicoot
    Вась-программист
    Юзаю это и вполне доволен: https://github.com/Imangazaliev/DiDOM
    Ответ написан
    Комментировать
  • Почему возникают ошибки присвоения при создании типа?

    XXXXPro
    @XXXXPro
    Fullstack Web developer
    Вместо конструктора в Go используется функция NewКласс, т.е. в данном случае NewUser. Ее надо определить в package user:
    func NewUser(login,password) {
    return &User { login, password }
    }

    А вызывать из main вот так:
    var bob = user.NewUser("Bob","superbob");
    Ответ написан
    3 комментария
  • Как загрузить SSD по полной?

    # чтение
    while true; do dd if=/dev/myssd of=/dev/null; done
    # запись нулей
    while true; do dd if=/dev/zero of=/dev/myssd; done
    # запись случайных данных
    while true; do dd if=/dev/urandom of=/dev/myssd; done
    Trim прикрутите сами после каждой итерации.
    Ответ написан
    2 комментария
  • Каков путь развития разработчика, с/с++/python?

    AgentProvocateur
    @AgentProvocateur
    Советую хорошо подумать, правильно ли выбрал сферу деятельности для кардинальных перемен. В it 26 лет - это уже внушительный возраст для входа, кто бы что ни говорил. Не слушай студентов на тостере и онлайн-коучеров, а для начала посмотри такое мнение и такое (и другие ролики). Если ты не ссышься кипятком от вида кода, и не вскакиваешь в 5 утра, чтобы быстрее сесть программировать, то минусов в этой деятельности может оказаться куда больше, чем плюсов. Ну и вообще, чтобы сбить флёр романтики тыц и тыц.

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

    Если охота не отбилась, то нужно определиться со сферой - энтерпрайз (c#, java), мобайл (java, swift, kotlin и т.д.), web-разработка (а там либо фронтенд - html, css, туча js-фреймворков, либо бэкенд - php, python, ruby, node.js и также туча фреймворков). А может и вовсе администрирование серверов, devops, big data, машинное обучение, статистика, системная аналитика, gamedev и пр. По каждой нише свой огромный технологический стек, которого хватит на годы только изучения...потом годы вырастания из джуниора, потом годы закрепления в мидлах, а потом до свидания, потому что 25-летних синьоров на улице очередь стоит))

    От того, что ты взял первые 3 языка из топ-2017 толку мало (java куда дел тогда?). На полноценное освоение (прежде чем к полноценной работе приступать), нужно минимум 2 года потратить активного набивания шишек (и не час-полтора после работы, а с утра и до вечера). Пройди курс "основы программирования на языке X", и сразу двигайся по выбранной нише, нет смысла залипать на C/C++ если нет конкретной цели их приложить к чему-либо.

    Если тебе "для души" - то пробуй всё, на что глаз ляжет, и выбирай на практике, а не по советам с форумов. Если нужно поскорее на работу выйти, основной спрос на джуниоров идет в java, web (как правило, вёрстка, php и cms), 1С. На фрилансе главенствует web-разработка, в основном js на фронтенде и php на серверной части. Чтобы понять, за что браться, достаточно открыть хх.ру, биржи фриланса и изучить спрос.

    Но я действительно настоятельно рекомендую не вестись на моду, сказки об уютных лофтах, кофе-печеньках, огромных зарплатах и продолжать развиваться в инженерии. Меняй сферы, компании, расти до главного инженера, будут у тебя и деньги, и личная жизнь, и стабильность, и работа интересная, а не сколиоз, выжигание глаз кодом и погоня за новыми фреймворками))
    Ответ написан
    6 комментариев
  • GoLang работа со строками?

    Можно использовать strings.Replace

    str := "5 000 000 шт"
    
    str2 := strings.Replace(str, " ", "", -1)
    // str2 будет содержать: "5000000шт"
    Ответ написан
    Комментировать
  • Возможна ли виртуализация майнинг ферм?

    @sazhyk
    Если бы вы копнули поглубже эту тему, то поняли бы, что майнеров волнует в общем-то один единственный вопрос: как получить максимальную выгоду при минимальных вложениях. Само по себе майнинг-оборудование уже стоит недетских денег, а уж в свете последних событий о повальном "майнинге-головного-мозга" и подавно.
    Давайте по порядку. Какое может быть централизованное управление в данной ситуации? Вариантов я вижу два: непосредственное подключение к ферме или программное подключение. Непосредственное - KVM-switch. Программное - тысячи их, но у TW есть ряд преимуществ перед другими; бесплатное, покрывает все запросы пользователя. А квм-переключатель на несколько машину будет стоить немалых денег. Вот тупо из гугла бегло: тынц, тынц, тынц. Это ж примерно одна карта ещё, которая будет приносить бабло. Ещё одно неоспоримое преимущество тимки: можно рулить фермами хоть из Антарктиды, лишь бы инет был.

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

    Фермы нуждаются в обслуживании. И останавливать весь "кластер" из-за одной засбоившей карты - бред.

    Майнингом не занимаюсь, но вопрос не дает спокойствия, а ответа так и не нашел.

    Да ладно вам, успокойтесь )))

    PS: исправьте заголовок вопроса, он никак не отображает сути вопроса (виртуализация??? WTF). Вы поди хотели предложить супермегаопупенную прогу для мониторинга-управления-и-ещё-чего-то-там? (ирония, простите, не удержался)
    Ответ написан
    5 комментариев
  • Как указать типы переменных в foreach?

    Типы у вас тут выводятся автоматически, потому что вы используете :=. Они и так int, int.
    Вы можете объявить эти переменные до цикла и использовать =, но всё равно другие типы не сможете использовать, так как в go строгая статическая типизация, а range в данном случае у вас возвращает int, int
    Ответ написан
    2 комментария
  • Помните сайт - список задач по сетям для Linux?

    @quramolt Автор вопроса
    А всё, сам нашёл. На тостере в похожих вопросах вывелось - nodesquad.blogspot.ru/2013/04/blog-post.html
    Ответ написан
    Комментировать
  • Какая была самая крупная DDOS-атака?

    athacker
    @athacker
    Атака на сайт Брайана Кребса (KrebsOnSecurity ), 620 Gbps, в сентябре 2016-го.
    Ответ написан
    1 комментарий
  • Переход с постоянки на фриланс, стоит ли игра свеч?

    @artem78
    Смотрите только в сторону зарубежных бирж - upwork, guru.com, freelancer.com, а наши выбросьте из головы.
    Ответ написан
    6 комментариев
  • Переход с постоянки на фриланс, стоит ли игра свеч?

    @McBernar
    У вас скромный рейт. Хотя, возможно, для Чехии это нормально.

    Я работал и работаю на фрилансе уже много лет. И в штате много лет тоже работаю.
    Поэтому могу кое-что сказать.

    Минусы

    1. Все байки про фриланс — правда.

    2. Нужно иметь железную дисциплину, чтобы работать в строго отведенные часы, а в другое время отдыхать. И чтобы вставать вовремя, а не спать до обеда.

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

    4. Очень много мудаков среди клиентов. Со временем научишься их определять с первых же слов в переписке. Но до этого придется некоторое количество раз обжечься.

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

    6. Хорошее описание проекта, хороший продукт сам по себе — на фрилансе этого мало. Повезет, если получится удаленно вписаться в команду, которая делает или большой проект или делает много проектов на потоке. Если же это разовые проекты, то будь готов к задаче вида "ну мне вот сайт нужен с формой, сообщениями и робокассой, а ну вот еще там корзина, да".

    7. Забудь про стабильность. Сегодня ты заработал двойную зарплату, а в следующем месяце процентов 50. Нет никого, кто строго раз в две недели будет тебе перечислять деньги на карту.

    Плюсы

    1. Свобода в выборе задач и проектов. Это прям кайф.

    2. Есть возможность заниматься своими делами, потому что за проекты отвечаешь ты и только ты. Соответственно, можно брать выходные, когда тебе удобно, а не когда они на календаре пришли.

    3. Если наработать клиентскую базу, то можно со временем отойти от дел руками, а заниматься лишь форвардом задач или вообще вырасти в полноценный продакшен.

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

    5. Есть много времени и сил на свои проекты. То, до чего не доходили руки целый год офисной работы, может быть сделано довольно быстро.

    Где работать
    Попробуй везде. И на фл и на апворке есть свои плюсы и минусы.
    Но самые лучшие клиенты — это, конечно, которые приходят напрямую.
    Ответ написан
    3 комментария
  • Как называется подобный стиль сайта?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега CSS
    Как называется подобный стиль у данного сайта
    Это просто кем-то нарисованный дизайн, здесь нет никакого особенного стиля. Слабые нотки закоса под iOS пятилетней давности, может быть, разве что.

    и как его можно добиться?
    Нарисовать и сверстать.
    Ответ написан
    Комментировать