Сохранен 786
https://2ch.hk/pr/res/2495049.html
24 декабря Архивач восстановлен после серьёзной аварии. К сожалению, значительная часть сохранённых изображений и видео была потеряна. Подробности случившегося. Мы призываем всех неравнодушных помочь нам с восстановлением утраченного контента!

C Programming Language #01 /clang/

 Аноним 22/10/22 Суб 10:10:36 #1 №2495049 
clang.png
Тред, посвященный прародителю всех С-подобных языков и по совместительству единственному идеальному и всесторонне годному средству программирования как на системном, так и на прикладном уровне.

Пожалуйста, пользуйтесь https://ideone.com/ или https://pastebin.com/ для вставки кода, если он длиной больше нескольких строк или содержит или ∗.

Что читать:

- Brian Kernighan, Dennis Ritchie "The C Programming Language": http://www.cypress.com/file/56651/download
- Stephen Prata "C Primer Plus, 6th Edition" (2014): относительно свежая, знает про C89/C99/C11, описывает различия, объемная (около тысячи страниц), годная, с вопросами, упражнениями и ответами. Читать после K&R или до.
- Zed A. Shaw "Learn C the Hard Way" (2015): годное пособие для гуманитариев для гуманитариев!
- Немного примеров хорошего стиля: http://www.oualline.com/books.free/style/index.html
- ООП, например: http://www.cs.rit.edu/~ats/books/ooc.pdf
- Стандарт ISO/IEC 9899:1999 (он же C99): http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1256.pdf (драфт)
- Стандарт ISO/IEC 9899:2011 (он же C11): http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1570.pdf (драфт)
- man/Dash/zealdocs

Чем компилировать:

- Очевидный GCC.
- clang: оче годно, батя рекомендует.
- Intel C++ Compiler: оптимизации, тысячи их.
- Visual Studio 2017 Community Edition: внезапно этим стало можно пользоваться, особенно с тулсетом clang/C2. Поддержка C11 на уровне "есть все, что тебе понадобится в реальном проекте плюс кривая библиотека". Анализатор кода в комплекте.
- Pelles C (шиндоуз онли): поучиться, вкатиться в C11 (стандарт полностью реализован, имеются в том числе threads.h и прочие stdatomic.h), но количество багов в оптимизаторе и редкие апдейты напрочь отбивают желание собирать этим что-то сколько-нибудь серьезное.
- TCC: очень маленький компилятор с багами и поддержкой C99. С ключом -run умеет компилировать код в память и запускать его, что позволяет писать скрипты прямо на сишечке.

Что еще почитать:

http://c-faq.com/
FAQ из comp.lang.c. Древний, но все еще актуален.

Samuel P. Harbison, Guy L. Steele Jr. "C: A Reference Manual, 5th Edition" (2002)
Ебаный пересказ стандартов C89 и C99 (включая стандартную библиотеку). Для не осиливающих стандарт в оригинале. Читать в качестве подготовки к собеседованиям (есть задачник с ответами) и для ознакомления с масштабами пиздеца перед написанием своего парсера/компилера.

Peter Van Der Linden "Expert C Programming. Deep C Secrets" (1994)
"Си: грязные истории". Смехуечки, немного объяснений, чем обусловлены особенности языка, всем известные подводные камни кто там ругал косяки в JS? у нас в сишечке их гораздо больше, просто они лучше спрятаны, немного байтоебли и непонятно откуда взявшаяся глава про старинные плюсы. Читать в качестве сказки на ночь (на пару вечеров хватит).

Richard M. Reese "Understanding and Using C Pointers. Core Techniques for Memory Management" (2013) - почитать, вкатиться в указатели.

Ben Klemens "21st Century C: C Tips from the New School" (2012)

Paul Deitel, Harvey Deitel "C for Programmers with an Introduction to C11" (2013)

Stephen G. Koch@n "Programming in C (3rd Edition или 4th Edition, если найдется)" (2014)

MISRA Ltd. "Guidelines for the Use of the C Language in Critical Systems" (2013)
Набор рекомендаций по написанию надежного кода на C (промышленный стандарт). Читать - однозначно, следовать - вдумчиво и без фанатизма. Также можно посмотреть https://www.securecoding.cert.org/confluence/display/c/SEI+CERT+C+Coding+Standard и http://web.archive.org/web/20190213011655/homepages.inf.ed.ac.uk/dts/pm/Papers/nasa-c-style.pdf

Еще более длинный список: http://www.iso-9899.info/wiki/Books#Learning_C

Онлайн-утилиты:

- https://godbolt.org/ - Compiler Explorer позволяет посмотреть выхлоп компиляторов для введенного куска кода (больше полусотни разных версий компиляторов).
- http://cdecl.org/ - С Gibberish ↔ English помогает читать сложные сишные декларации.
Этот тред копия 01/08/19 Чтв 23:34:41 №1446278 с вебархива №47
Прошлые треды:
предыдущий тонет тут: https://2ch.hk/pr/res/2493863.html
https://arhivach.ng/
Аноним 22/10/22 Суб 17:54:06 #2 №2495439 
пукнул
Аноним 22/10/22 Суб 18:02:29 #3 №2495461 
если мы посмотрим адрес указателя, то мы получим указатель на указатель? накуй такое может понадобиться?
Аноним 22/10/22 Суб 18:08:05 #4 №2495472 
>>2495461

Двумерный массив.
Аноним 23/10/22 Вск 01:37:02 #5 №2495959 
изображение.png
>>2495472
да, ето Я, слушаю
кот_волшебник 23/10/22 Вск 01:39:38 #6 №2495960 
изображение.png
бамп в легитимном
Аноним 23/10/22 Вск 11:03:55 #7 №2496050 
photo2022-10-23 11.03.33.jpeg
Аноним 24/10/22 Пнд 07:53:35 #8 №2497012 
Тред умер, смысл перекатывать?
И вакух нихуя нет, чуть-чуть ебли с линуксом в госпарашах, чуть-чуть микроконтроллеров. Нахуй так жить.
Аноним 24/10/22 Пнд 10:28:47 #9 №2497048 
>>2497012
GPU
P
U
Аноним 26/10/22 Срд 02:45:12 #10 №2498261 
>>2495049 (OP)
Ну наконец-то тред в перечне появился!
Аноним 27/10/22 Чтв 00:44:57 #11 №2499223 
сап, впервые пишу чет параллельное, считаю тройной интеграл в области
https://pastebin.com/nX3vEx2X

считает то норм, но время работы рассчитывается пиздец странно - по смыслу это время работы самого длительного процесса, но почему то на 1 процессе оно быстрее чем на 4, а на 4 быстрее чем на 16 потому что говнокод

сможешь помочь подправить?
Аноним 27/10/22 Чтв 07:18:06 #12 №2499275 
>>2499223
это типа ты на разные ядра суешь треды?
мож прост куду заюзать?
Аноним 27/10/22 Чтв 09:27:30 #13 №2499319 
>>2499275
По идее нужно было прост написать параллельную MPI-программу для интегрирования методом Монте-Карло,
которая принимает аргументом точность и генерирует точки до тех
пор, пока численный ответ не приблизится к аналитическому.

Если бы не задание, тут и параллелить не было бы смысла. Кажется что накладных расходов на организацию параллелизма больше чем выгоды но скорее всего это потому что говнокод
Аноним 27/10/22 Чтв 22:19:15 #14 №2499941 
Пора перематываться на голанг
Аноним 28/10/22 Птн 03:19:17 #15 №2500069 
>>2499941
Как язык с ГЦ пересекается с областью применения Си?
Аноним 28/10/22 Птн 08:22:06 #16 №2500107 
>>2499319

В общем это говнокод, поэтому все так медленно работает. Да? Ты сам ответил на свой вопрос?
Аноним 29/10/22 Суб 16:01:01 #17 №2500849 
скрепка.jpg
Анон, напомни почему параметризируемый стэк это пиздарики?
Аноним 29/10/22 Суб 17:55:00 #18 №2500909 
запрещенное-видео.mp4
>лыхитимный
>нелыхитымный

ебонашки что творите то блять вас сдесь полинвалида вы чё делите то блять конченые я хуею с вас прост
Аноним 29/10/22 Суб 23:25:44 #19 №2501156 
Битовый сдвиг вправо для знаковых целых implementation defined. Как написать кроссплатформанный код для получения 4 старших бит из char, с учётом того что он может быть как знаковым, так и беззнаковым, не нарушая штандарт? допустим char всегда 8 бит
Аноним 30/10/22 Вск 09:00:14 #20 №2501329 
>>2501156
uint8_t
I
N
T
8
_
T
Аноним 30/10/22 Вск 09:19:38 #21 №2501332 
Я пишу в файл, делая несколько fwrite, потом закрываю. Укажите самый простой и корректный способ проверки, что все данные записались без ошибок.
Аноним 30/10/22 Вск 10:31:49 #22 №2501348 
>>2501156
>Битовый сдвиг вправо для знаковых целых implementation defined.
Странно, в крестах в стандарте закреплено что для знаковых арифметический, для без - логический.
Аноним 30/10/22 Вск 11:21:56 #23 №2501367 
Там дебил или жирнич. 4 старших бита со знаком всегда будут ID, потому что битовое представление знака ID.
Аноним 30/10/22 Вск 11:57:39 #24 №2501377 
>>2501348
Начиная с C++20
Аноним 30/10/22 Вск 12:09:20 #25 №2501384 
>>2501367
> потому что битовое представление знака ID.
C99 6.2.6.2
the sign bit is one, the value shall be modified in one of the following ways:
— the corresponding value with sign bit 0 is negated (sign and magnitude);
— the sign bit has the value −(2N) (two’s complement);
— the sign bit has the value −(2N − 1) (one’s complement).
Which of these applies is implementation-defined, as is whether the value with sign bit 1 and all value bits zero (for the first two), or with sign bit and all value bits 1 (for one’s complement), is a trap representation or a normal value. In the case of sign and magnitude and one’s complement, if this representation is a normal value it is called a negative zero.
Аноним 30/10/22 Вск 23:30:34 #26 №2501742 
>>2501332
Ну сделать fflush(file), напрммер
Аноним 30/10/22 Вск 23:31:23 #27 №2501743 
>>2501742
Перед закрытием файла, конечно
Аноним 31/10/22 Пнд 00:33:31 #28 №2501762 
>>2501743
На диске нет места - как и где на это проверить?
Аноним 31/10/22 Пнд 01:35:04 #29 №2501775 
>>2501762
fflush(), если всё ок вернёт 0. Если нет, то он вернёт константу EOF и запишет в специальную глобальную переменную errno код ошибки. Коды ошибок у fflush() в общем те же, что и у системного вызова write(). Ну там уж гугли, какие они бывают. Короче далее проверяешь, что errno равен такому-то коду и делаешь уже то, что нужно в случае ошибки
Аноним 31/10/22 Пнд 09:35:06 #30 №2501830 
>>2501775
fflush вернет мне ошибку, если какой-то из предыдущих fprintf не смог записать все байты?
Аноним 31/10/22 Пнд 16:03:49 #31 №2502136 
Чтот я раздуплить не могу, что такое /dev/input/event* ?
Это просто отладочная какая то штука или через нее реально драйвера для нажатий на клавишы пишут?
Аноним 01/11/22 Втр 17:42:29 #32 №2503178 
Есть альтернатива на сишке как ipadress у go
Нужна либа для айпишников
Аноним 01/11/22 Втр 19:17:33 #33 №2503282 
>>2503178
> Нужна либа для айпишников
Твои sockets.h
Аноним 02/11/22 Срд 23:32:30 #34 №2504453 
Что это? Что это к нам ползёт? Что это за омерзительный старый дед, воняющий мочой? Почему вместо штанов у него плотно сбитое подсушенное говно? Что за жёлтые гнойные слюни текут из беззубого рта?

Это, дети, сишкоблядь. Посмотрине на него внимательно. Посмотрите. Видите, как трясутся руки у полудохлого пердеда? Какие мозоли натёрты на кончиках стариковских пальцев? Видите, как согнута за бесконечными отловами use-after-free и stack overflow его тощая сутулая спина? Что шамкает этот старый хуеплёт? Что он пытается пробулькать своей омерзительной дырой на жопной роже?

--- Пфркхтпф сишка тру, - пёрнул старый хуесос, - Пфсишка пф лучший езык.

Видите, дети, как это омерзительно? Как мерзко выглядит этот выкинутый на свалку IT бывший специалист? Видите, как вываливается его геморроидальная кишка и на пол капают гнойные капельки ANSI C? Видите, как канатом вываливается пучок template-глистов? Как из поганой пасти старпёра вместе с кровавой блевотой вываливаются сегфолты и статичкеские типы? Видно ли вам, дети, как дурнопахнущие шаблоны кровавыми коростами отваливаются от костлявой жопы сишкоблядка, исполосованной пролежнями и целлюлитом?

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

Я презираю сишкоблядь. Если ты сишкоблядь, то пизданись своей закостенелой в непоколебимом апломбе старого дегенерата бошкой и освободи мир от своего присутствия. Никогда не садись рядом с нормальными людьми и не заговаривай с ними - ты сишкоблядь, недочеловек. кусок старого гнилого мяса. Иди на хуй. Вы превратили софт в ебаную кучу говна, которую проще переписать, чем доработать ваши высеры. Вы умудрились принести в 21-ый век то, что должно было загнуться в начале 90-х. Вы умудряетесь дышать, когда вам бы пора уже и к земельке привыкать.

День, когда сдохнет последний кодосёр на Сишке, станет праздником человечества.
Аноним 03/11/22 Чтв 08:47:49 #35 №2504532 
16523592500280.jpg
fatatypes.png
Ковыряю графическую панель по работе.
Опытные господа, свангуйте что может быть не так.

Мне надо реализовать возможность "дельты" для параметра (сумма или разность с текущим измеренным значением) в макросе (так обзывается оболочка, в которой исполняется пользовательский код на Си).

Измеренное значение отображается в дисплее с типом DWord и форматом Float.

Код:
float tmp_val = 0;
int delta = 0;
DWORD temp_value;

// в промежуточную переменную типа Float (tmp_val) заносим сумму или разность считанного значения типа DWord (temp_value) и дельты delta типа Int (в зависимости от знака дельты)
// Здесь же преобразуем DWord (temp_value) в Float
tmp_val = (delta >= 0) ? (DWord_2_Float(temp_value) + delta) : (DWord_2_Float(temp_value) - (delta -1));
// заносим значение промежуточной переменной tmp_val в регистр, например, PSW300 (+ 301) - который и отображается в дисплее с типом DWord и форматом Float
(float)(PSW+300) = tmp_val;
, где:
delta - переменная типа Int, которая хранит собственно дельту;
tmp_val - переменная типа float, которая хранит промежуточное значение для вычислений;
temp_value - переменная типа DWord, которая хранит считанный с преобразователя параметр;

С положительной дельтой всё в порядке, а если дельта имеет знак минус - происходит переполнение что ли: на дисплее отображается 6.86+05. Типа того.

Проверял код в эмуляторе Си - всё впорядке: https://onlinegdb.com/UPxuD_VG8

В чём проблема?
Предположил, что по каким-то причинам косяк в арифметических действиях между целочисленными и вещественными типами (Inи Float).
Пробовал привести типы к одному, явно и не явно:
(float)delta;
float tmp_delta = delta;
Даже так попробовал:
tmp_val = (delta >= 0) ? (DWord_2_Float(temp_value) + delta) : (DWord_2_Float(temp_value) - (delta
-1.0));
По идее, компилятор должен автоматом привести к типу Float.

Пробовал и замену суммы, на разность (для того и умножал на -1) - не помогает.
Типа,
10 - 3 = 7;
10 + (-3) = 7;
10 - (-3 * -1) = 7;

Что может быть не так? Почему с положительной дельтой всё нормально, а с отрицательной проиходит непонятная хрень?

Поддержка молчит.
Аноним 03/11/22 Чтв 09:01:36 #36 №2504540 
>>2504532
Макаба пожрала символы...
https://pastebin.com/60wxR7pe
Аноним 03/11/22 Чтв 09:36:48 #37 №2504553 
>>2504540
Аппаратчик, я узнал тебя по говнокоду. Почему ты пытаешься программировать - кабаныч не выделил вакуху разраба? А уборщица у вас отдельная есть?
Аноним 03/11/22 Чтв 10:31:10 #38 №2504561 DELETED
>>2504532
Ебани sizeof(тип) по всем используемым типам на своем конпеляторе и сравни с типами из спеки панели
>Проверял код в эмуляторе Си
Там может 64 битный быть конпелятор, а тебе какой нить 16-32 нужен
Аноним 03/11/22 Чтв 14:37:42 #39 №2504758 DELETED
>>2504706
Погугли, заебал

https://thehackerdiary.wordpress.com/2017/04/21/exploring-devinput-1/
Аноним 03/11/22 Чтв 16:53:44 #40 №2504854 
1667483623602.jpg
>>2504553
Ну дя, вапроси?
Аноним 03/11/22 Чтв 18:10:15 #41 №2504908 
>>2502136
>/dev/input/event* ?
https://www.kernel.org/doc/Documentation/input/input.rst}

>>2504758
Хуле там гуглить, если всё есть в документации ядра?
Аноним 03/11/22 Чтв 18:14:01 #42 №2504910 
>>2495461
Изменить указатель находящийся по этому адресу, например из другой функции.
Аноним 05/11/22 Суб 15:38:12 #43 №2506330 
Пишу много методов для работы со строками. Сотоит ли в каждую дыру пихать assert(str != NULL)?
Аноним 05/11/22 Суб 16:14:18 #44 №2506350 
>>2506330
Много - не мало. Всегда сможешь релизную сборку сделать с -DNDEBUG
Аноним 06/11/22 Вск 16:47:03 #45 №2507182 
всем привет. понимаю что вопрос не совсем для программистов, но тут люди которые ближе всего к системе.

играюсь тут со скриптами из репозитория bcc, конкретно остановился на этом
https://github.com/iovisor/bcc/blob/master/tools/profile_example.txt

хотел собрать стэк работы ldap-сервера построить flamegraph и все-таке. но незадача - у меня вместо сигнатур функций [unknown] везде

https://pst.klgrth.io/paste/5dywb

кто может без окунания в говно пояснить поподробнее, что сделать чтобы их увидеть? я вроде попытался поставить пакеты debuginfo (конкретно 389-ds-base-debuginfo и 389-ds-base-lib-debuginfo), но ничего не завелось.
Аноним 06/11/22 Вск 16:59:46 #46 №2507197 
>>2507182
Надо смотреть как собран этот ldap-сервер. У тебя по ссылке написано что оно не будет работать если программулина собрана с -fomit-frame-pointers, что очень вероятно, так как GCC включает эту опцию на O1 и выше.
Аноним 06/11/22 Вск 18:05:02 #47 №2507241 
>>2507197
Ух блять епта, плохие новости. Но спасибо, я что-то проглядел.
Постараюсь узнать ещё у разрабов в рассылке что-нить.
Аноним 06/11/22 Вск 18:35:38 #48 №2507283 
>>2507241
Если тебе чисто для профилировки, то собери сам с -fno-omit-frame-pointer
Аноним 07/11/22 Пнд 06:34:59 #49 №2507713 
12164156416515321.jpg
>>2504532
Рапортую.

Дело было в приведении типов: элемент Ввод данных для переменной дельты имеет тип Word и формат Dec. Переменная, хранящая дельту, имеет тип Int. Решилось всё с помощью преобразования Word_2_Int16(x). Далее тип Float и Int можно нормально складывать и вычитать.
Аноним 07/11/22 Пнд 07:34:31 #50 №2507720 
>>2507283
>>2507197
да, спасибо ребзи. там все немного сложнее, и эта залупа работает в контейнере как часть freeipa сервера. так что там совсем уж просто так не получиться скачать сорцы из репы и пересобрать.
но будем пробовать. потом напишу в резюме что хуяк хуяк и sre
Аноним 07/11/22 Пнд 08:03:39 #51 №2507724 
Посоветуйте что почитать можно чтобы в namespaces и cgroups линуксоуских разобраться
Аноним 07/11/22 Пнд 09:10:12 #52 №2507736 
>>2507724
а на каком уровне разобраться?

в 2022 мыслим только клиповым мышлением, так что для старта могу посоветовать видосик
https://www.youtube.com/watch?v=x1npPrzyKfs

а там куда нелегкая кривая теребения ядра заведет. хороших книжек по ядру (актуальных) вообще мало, так что попробуй оф. документацию
https://docs.kernel.org/admin-guide/cgroup-v2.html?highlight=cgroup
Аноним 07/11/22 Пнд 09:59:27 #53 №2507752 
>>2507736
Спасибо за ссылку, как раз то что искал
что то сам недопер сразу в документацию нырнуть
Аноним 08/11/22 Втр 01:24:14 #54 №2508452 
1511016876295.png
подскажите книжек или сайтов где qt creator объясняется для даунов. я гречневый васян, никуда не вкатываюсь, хочу сделать программку которая копирует функционал будильника из аимпа3.

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

но я не понимаю как доставать время из спинбокса и я не могу нагуглить ни на стеке ни где-то ещё как это делается на крестах. пожалуйста подскажите кто знает как доставать данные из формочек этих.
Аноним 08/11/22 Втр 01:33:25 #55 №2508456 
1542208515027.png
ситуация осложняется тем что почти всё что я могу нагуглить про кресты - это какие-то древние кресты, например в примерах постоянно упоминают string, а тут надо писать QString и прочие подобные расхождения.

и ещё - вот на скриншоте то что у меня сейчас есть. почему тут несколько файлов? если я объявляю переменную в main.cpp то я не могу использовать её в mainwindow.cpp но если я объявляю её и там и там то программа не компилится потому что надо объявлять в каком-то одном файле. можно ли как-то объявить переменную в одном файле а использовать во всех?
Аноним 08/11/22 Втр 02:05:24 #56 №2508477 DELETED
>>2508456
>можно ли как-то объявить переменную в одном файле а использовать во всех?
Можно, ебани в хедер
>то какие-то древние кресты, например в примерах постоянно упоминают string, а тут надо писать QString и прочие подобные расхождения.
Это не кресты, это КюТешные типы и там еще много чего специфичного.
>подскажите книжек или сайтов где qt creator объясняется для даунов
У них охуенные доки, читай их
Аноним 08/11/22 Втр 10:15:03 #57 №2508606 
>>2508477
> Можно, ебани в хедер
ты имеешь в виду mainwindow.h? программа больше не компилируется, пишет :multiple definition of `fileName'; mainwindow.h:11: first defined here
больше я её нигде не объявлял, это единственное не закомментированное объявление. я не понимаю что ему от меня надо.
Аноним 08/11/22 Втр 10:26:27 #58 №2508613 
я нагуглил это https://stackoverflow.com/questions/30821356/multiple-definition-first-defined-here-errors но qt creator вроде уже сделал это.
Аноним 08/11/22 Втр 10:32:35 #59 №2508619 
1599317661693.png
а, всё, проблема решилась тем что я нажал build-run qmake а потом build-rebuild, так что это была особенность не крестов а особенность qt creator, и единственное где это объясняется это один пост на их форуме который еле заметишь.
Аноним 10/11/22 Чтв 22:29:56 #60 №2510945 
изображение.png
суп
в универе дали задание написать алгоритм Ли, на языке С.
не программистская специальность, теории графов у нас не было, но там ничего сложного.
написал очередь для алгоритма, написал список смежности, и тут я проснулся в подливе и тут у меня возник вопрос: а этот алгоритм на списке можно вообще реализовать? все реализации которые я видел были на С++ матрицах смежности.
из литературы я изучал В.В. Прут "Алгоритмы на языке С" издательство МФТИ, там тоже всё на матрицах
двачик, я уже ёбнулся с этими структурами. хелп ми ор килл ми
Аноним 11/11/22 Птн 06:21:46 #61 №2511040 
>>2510945
Если сам не осиливаешь, то спиши у другого
Не думаю что тут кто то за тебя будет Лабы делать
Аноним 11/11/22 Птн 15:33:14 #62 №2511332 
>>2511040
это не лаба. в универе вообще ничего про это не было и не будет ни у кого на моей специальности.
мне и не нужно чтобы кто то что то за меня писал. мне просто нужны ответы на вопросы, по тому что я не понимаю некоторые моменты.
Аноним 11/11/22 Птн 21:55:18 #63 №2511715 
можете пояснить нахуя мне нужны указатели в функциях?

и что значит (void *) ptr
нахуй это вообще нужно?
Аноним 12/11/22 Суб 02:31:24 #64 №2511834 DELETED
>>2510945
>алгоритм Ли
https://github.com/captdam/Maze-Router-Lee-Algorithm
http://www.rohitab.com/discuss/topic/29320-lees-algorithm/
Вот тут вроде на списках пробуют
https://stackoverflow.com/questions/4384359/quick-way-to-implement-dictionary-in-c

Пагугли, бля
Аноним 12/11/22 Суб 02:32:44 #65 №2511835 DELETED
>>2511715
>(void *) ptr
Можно пихать укзатель на переменную любого типа
Аноним 12/11/22 Суб 13:47:16 #66 №2512030 
Как дела в Си обстоят с джунами?Есть смысл имея университетский уровень языка дальше его изучать и искать работу?
Аноним 12/11/22 Суб 18:56:47 #67 №2512253 
>>2512030
Да. Было бы желание, ибо сейчас байтоёбов с универа нихуя не выходит - все на вебе, мобилках.

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

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

мимо байтоёб
Аноним 12/11/22 Суб 20:02:15 #68 №2512325 
>>2512030
Будешь пердолить Linux на ARM и RISC-V в госпараше за пайку Не вкатишься. Вакух для джунов на C/C++ нет.
Аноним 13/11/22 Вск 11:37:25 #69 №2512697 
>>2495049 (OP)
Кто пробовал собрать gcc из исходников? Я вроде добился на ubuntu сделал ./configure потом make без ошибок. Вот только не понял make install надо делать? В оф. документации вообще не говорится что это надо делать. Где теперь новые бинарники? Как запустить?
Аноним 13/11/22 Вск 12:57:06 #70 №2512792 
>>2512697
Самый простой способ собрать GCC - использовать ABE от Linaro.
Второй самый простой - скачать пакет ubuntu и пересобрать его примерно так:

apt source gcc
sudo apt build-dep gcc
cd gcc-<версия>
sudo debuild -b -uc -us

Вот только нахуй оно тебе нужно? Сборок под все существующие платформы сколько угодно.
Аноним 13/11/22 Вск 13:13:58 #71 №2512799 
>>2512792
Я хочу отдебажить сам gcc. Я кажется нашёл что он пропускает warning с неинициализированным указателем в определённых условиях, хочу разобраться почему он так делает, ну и если я прав что это ошибка, то попробую сделать контрибьют. Хорошая строчка будет в резюме - типа я сам компилятор правил и почти весь прочитал.
Аноним 13/11/22 Вск 13:17:50 #72 №2512809 
>>2512799
Дело хорошее, успеха тебе.

Тогда лучше всего собирать его с префиктом вроде /opt/gcc чтобы make install устанавливал его туда. В противном случае ты рискуешь переписать файлы системного gcc, что ни к чему хорошему не приведёт.

А еще я бы рекомендовал тебе всё это делать в chroot, чтобы не попортить систему. В этом случае даже если ёбнешь что, то перегенеришь chroot и всего делов.
Про chroot рекомендую почитать тут: https://wiki.debian.org/Schroot
Аноним 13/11/22 Вск 14:08:17 #73 №2512871 
k.jpg
Аноны, а есть ли смысл писать на чистом Си, если ты:
. не имеешь дело с легаси кодовой базой;
. не разрабатываешь под платформу, на которой нет компилятора C++;
. не пишешь что-то настолько маленькое, чтоб удобствам C++ негде было проявиться?
Я прекрасно понимаю, почему с него полезно начинать. Приучаешь себя взвешивать цену каждого действия, и вообще простота для вката, годный учебник K&R, ничего лишнего, все только самое важное. Сам Сишечку люблю и обожаю. Но сейчас даже с точки зрения микрооптимизаций мне C++ кажется лучшим языком. На C может быть лень прибегать к нечитаемому байтоебству, и ты предпочтешь какое-то компромиссное решение. А на крестах ты один раз сделаешь какой-нибудь zero-overhead прокси-класс на темплейтах, и всегда простым синтаксисом будешь дергать его, получая идеальный перфоманс без компромиссов.

Алсо, слышал (и сам замечал), что на крестах бинарники получаются тяжелее из-за библиотек. Но разве под resource critical задачи не существует инструментов, которые выковыривают код неиспользуемых символов? Или на уровне .o файлов это какой-то неавтоматизируемый анализ с точки зрения математики? Я тупой, объясните.

А еще тут в каком-то из тредов кидали ссылку на cmustdie, где рассказывается, какие разработчики GCC конченные пидарасы, хуесосы и нехорошие люди. Стандарт стандартом, но разве это мешает запилить некий Gigachad C Compiler, который будет соответствовать всем канонам труъшности и гарантированно поддерживать всякие Кармаковские трюки as expected? Или gcc/clang так умеет, если прям все-все-все -fno-strict-aliasing проставить?

Ну а то, что он позволяеят делать что хочешь с указателями и не заставляет кастовать, как кресты, это мне как раз нравится, и тут анало-говнет, ящитаю.
Аноним 13/11/22 Вск 15:31:30 #74 №2512928 
Снимок экрана от 2022-11-13 14-44-53.png
Снимок экрана от 2022-11-13 14-43-38.png
>>2512809
всё получилось, последняя версия gcc находит ошибку.
Аноним 13/11/22 Вск 15:52:30 #75 №2512945 
>>2512871
>что на крестах бинарники получаются тяжелее из-за библиотек. Но разве под resource critical задачи не существует инструментов, которые выковыривают код неиспользуемых символов?
когда нет ресурсов пишут свои библиотеки.
можно ещё юзать прогу strip.
Аноним 13/11/22 Вск 15:58:19 #76 №2512946 DELETED
>>2512928
Так это не ошибка
Аноним 13/11/22 Вск 16:01:18 #77 №2512948 
>>2512945
strip это отдельная утилита, но есть ещё:

‘install-strip’

Like install, but strip the executable files while installing them. In simple cases, this target can use the install target in a simple way:

install-strip:
$(MAKE) INSTALL_PROGRAM='$(INSTALL_PROGRAM) -s' \
install

But if the package installs scripts as well as real executables, the install-strip target can’t just refer to the install target; it has to strip the executables but not the scripts.

install-strip should not strip the executables in the build directory which are being copied for installation. It should only strip the copies that are installed.

Normally we do not recommend stripping an executable unless you are sure the program has no bugs. However, it can be reasonable to install a stripped executable for actual execution while saving the unstripped executable elsewhere in case there is a bug.

это опции сборки gcc , описаны на странице https://www.gnu.org/software/make/manual/html_node/Standard-Targets.html
лень проверять сколько сэкономят, пока мне это не надо.
Аноним 13/11/22 Вск 16:05:45 #78 №2512950 
>>2512946
ключ -Werror превращает предупреждения в ошибки. Я хочу писать идеальный код :-)
Аноним 13/11/22 Вск 16:29:59 #79 №2512962 
Screenshot from 2022-11-13 18-31-28.png
>>2512871
Накатал простыню, а ебучая макака ёбнула постинг на моём адресе из-за какого-то ослоёба. А потому придётся вот так.

>>2512950
Тогда еще использую -Wall, -pedantic
Аноним 13/11/22 Вск 16:31:13 #80 №2512963 
>>2512962
>использую
используй
Аноним 14/11/22 Пнд 13:19:46 #81 №2513595 
//
Аноним 14/11/22 Пнд 15:15:30 #82 №2513677 
>>2512253
Как вкатиться в этот опенсорц? Что надо знать?
Дальше создания профиля на гитхабе и ввкладывания туда своего мини проекта не заходил.
Аноним 14/11/22 Пнд 21:01:40 #83 №2513922 
>>2513677
Открывай тикеты и пиши багрепорты. Багов в софтах всегда хватает. Владеть схх не обязательно.
Аноним 14/11/22 Пнд 23:17:21 #84 №2514018 
>>2513677
Там с выходом новой убунты 22.04 все проги видеозахвата сломались. Попробуй починить.
Аноним 15/11/22 Втр 08:51:56 #85 №2514165 
>>2501332
Чекай возвращаемые значения fwrite. Чекай errno. Если всё ок - fwrite возвращает колво записанных байт, а errno == 0
Аноним 15/11/22 Втр 08:53:00 #86 №2514166 
>>2514018
Убунта не причём, это всё вейланд. На иксы переходи и радуйся жизни
Аноним 15/11/22 Втр 09:03:14 #87 №2514168 
>>2514165
Ладно, паю годноту. Достаточно проверить перед закрытием ferror, потом проверить fflush.
Аноним 18/11/22 Птн 21:50:41 #88 №2517054 
Сап, аноньчик. Подскажи каких-нибудь сайтов/учебников с задачами и их решениями на си. Я вкатыш в си, лекции есть, а практики не хватает. Нужно что-то несложное но и с решениями для проверки
Аноним 19/11/22 Суб 10:07:21 #89 №2517298 
>>2517054
Попробуй написать компилятор
Аноним 19/11/22 Суб 11:25:54 #90 №2517327 
Какой, на ваш взгляд, самый удачный способ синтаксически-стилистического написания указателя?

int myNum;
int
myNum;
int * myNum;
Аноним 19/11/22 Суб 11:27:00 #91 №2517328 
1.png
>>2517327
Бля, звездочки проебались
Аноним 19/11/22 Суб 11:29:32 #92 №2517330 
>>2517328

2 без вариантов
Аноним 19/11/22 Суб 12:09:58 #93 №2517345 
>>2517328
Первое нелогично из за возможности объявить несколько таких переменных через запятую, и в каждой будет нужна звездочка. Тут же написано будто звездочка принадлежит слову типа, а значит остальные такие переменные должны быть без звездочек.
Аноним 19/11/22 Суб 12:32:32 #94 №2517350 
>>2517328
>>2517330
Я тоже 2 использую. Остальное вызывает отвращение.
Аноним 19/11/22 Суб 13:26:29 #95 №2517392 
>>2517328
Изначально писал в первом стиле, правда хуй знает почему. Сначала подумал потому что так писали в K&R, но сейчас проверил второе издание и там второй вариант используется.
Но потом почитал умных книжек, набил шишек и перешел на второй вариант. Он верен хотя бы потому, что указатель - это не совсем тип данных, поэтому хули ему делать рядом со словом типа?
Даже диды пишу во втором стиле:
https://www.kernel.org/doc/Documentation/process/coding-style.rst
https://man.openbsd.org/style
http://doc.cat-v.org/bell_labs/pikestyle
Аноним 19/11/22 Суб 13:54:19 #96 №2517409 
>>2517330
>>2517345
>>2517350
>>2517392
Понял вас, господа
Аноним 19/11/22 Суб 20:58:10 #97 №2517735 
А еще можно писать звездочку вместо пробела, так лучше выравнивание в столбик.
Аноним 20/11/22 Вск 13:29:18 #98 №2518241 
image.png
Помогите написать функцию, которая переводит десятичное число в двоичное, но использовать массивы запрещено. Можно только циклы и printf scanf.
Я тупенький, если не могу это сделать? Мне как дальше то...
Аноним 20/11/22 Вск 15:43:06 #99 №2518426 
>>2518241
Подсказко
& 1
>> 1
Аноним 20/11/22 Вск 15:57:38 #100 №2518453 
Здравствуйте, мудрецы-деды!
Бекендер-зумерок на связи.
Хочу вот долгое время изучить как устроены все мои приложухи на более низких слоях абстрации, поэтому захотел изучить C, но т.к я за практикоориентированное обучение, то могут ли мне мудрецы подсказать маст-хев проекты которые нужно реализовать.
Пока что в списке только два - HTTP сервер( не дорос до него чутка) и своя оболочка типо баша, но облегчённая(прямо сейчас делаю)
Аноним 20/11/22 Вск 16:01:18 #101 №2518460 
>>2518453
>могут ли мне мудрецы подсказать маст-хев проекты
Да, есть такой. Функция, которая переводит десятичные числа в двоичные!
>>2518426
Не понимаю...
Аноним 20/11/22 Вск 16:02:34 #102 №2518465 
>>2518453
>>2518460
>Да, есть такой. Функция, которая переводит десятичные числа в двоичные!

Да не, такое я уже много раз делал на других языках, мне бы чего поинтереснее
Аноним 20/11/22 Вск 18:20:46 #103 №2518678 
>>2518465
Прогу консольную, которая извлекает все mp3 из произвольного незашифрованного несжатого архива. Если есть теги, то извлекает mp3 с тегами, если тегов нет, то извлекает mp3 без тегов. Понимает любые варианты mp3. Память использовать по минимуму, в идеале 64 килобайт.

То же самое для всевозможных вариантов jpg.

То же самое для всевозможных вариантов dds.

Прогу, которая извлекает всю графику из pdf в исходном качестве. Тут пригодятся наработки с jpg, а также библиотеки zlib и stb_image_write.

Консольный калькулятор с блекджеком и шлюхами. Чем больше умеет тем лучше.

Простую игру на винапи. Змейку например.
Аноним 20/11/22 Вск 18:34:00 #104 №2518706 
image.png
>>2518453
Аноним 20/11/22 Вск 19:33:02 #105 №2518783 
Как работают флаги -l(LIBNAME) у гцц?
Где находятся эти сорсы, которые он прикладывает?
У меня на убунту check 10 версии так подгружается через -lcheck, а мне нужно чтобы подгружался 11. Как обновить?
Аноним 21/11/22 Пнд 21:25:36 #106 №2519817 
Ребята, есть ли разница между этими строками
struct FixedGridCell fixedGrid;
struct FixedGridCell fixedGridArray[1];
Мне нужно из C модуля в мою смузипарашу вытащить хороший указатель на один экземпляр моей структуры, чтобы потом копирнуть её в нативный буфер для ГПУ
Аноним 21/11/22 Пнд 22:17:12 #107 №2519866 DELETED
>>2519817
Во втором случае указатель
Аноним 22/11/22 Втр 01:06:55 #108 №2519958 
>>2495049 (OP)
>>1008826 (OP)
Без понятия как нормально сформулировать проблему, поэтому пишу сюда

https://pastebin.com/hmT1ZJD2

почему данный кусок поделки на C ничего не выводит, хотя очевидно что при табуляции X принимает значение 0? по наблюдениям при табуляции получается не точное число, а что-то стремящееся к данному числу. пытался в костыль с округлением, не помогло. При этом если заменить 1./10 на 1./2, то оно выполняется
}
Аноним 22/11/22 Втр 02:29:38 #109 №2519987 DELETED
>>2519958
Потому, что с плавающей точкой не сравнивают
Аноним 22/11/22 Втр 02:53:55 #110 №2519994 
>>2519987
Спасибо.
А есть более элегантные способы решения, чем домножение до целого числа? первое что в голову пришло
Аноним 22/11/22 Втр 03:46:53 #111 №2520000 
>>2519994
дело не в умножении, а в том что ты можешь только сравнить больше или меньше число, но не использовать сравнение на равно.

x>0 или x<0 работать будет. сравнение на равенство может производится через так называемый epsilon, достаточно малое значение которое определяет разницу между величинами.

x-a < EPSILON.
Другой вопрос, чего ты решил использовать дубл, не понятно
Аноним 22/11/22 Втр 05:08:45 #112 №2520009 
>>2520000
Да, благодарю за пояснение. Эпсилон решает эту проблему.
https://pastebin.com/yptgdPJu
Насчет double, его применение действительно не обосновано, этот код - тестовый стенд для наиболее простого воспроизведения проблемы, изначально возникшей при табулировании системы уравнений с шагом 0.1, офк там сравнивались переменные с плавающей точкой и в итоге число "на стыке" двух множеств попадало не на ту "ветвь". Как-то так
Аноним 22/11/22 Втр 09:41:41 #113 №2520084 
>>2519817
Во втором соучае не надо писать &
Аноним 22/11/22 Втр 20:44:14 #114 №2520851 
Назрел вопрос по naming convention касательно typedef struct. Используете ли вы что-то из перечисленного, или у вас свой взгляд на именование typedef`ов ?

K&R
typedef struct tNode {
...
} Node;

kernel style
typedef struct node_t {
...
} Node;

Чел с ютуба
typedef struct Node {
...
} tNode;
Аноним 22/11/22 Втр 21:50:20 #115 №2520890 
>>2520851
Struct node;
Туподефы для структур больше одного-двух слов не нужны, только для мелочи.
Аноним 23/11/22 Срд 07:34:17 #116 №2521187 
>>2520851
Пишу одинаковое имя и там и там, иначе хуйня получается.
Аноним 23/11/22 Срд 09:52:40 #117 №2521239 
>>2521187
Это кажется запрещено мисрой.
Аноним 24/11/22 Чтв 10:26:24 #118 №2521908 
>>2520851
Так, стоп. А если я вообще ничего не пишу после скобок, если использую typedef?
Для чего там вообще разные имена? Путаница какая-то получается.
Аноним 25/11/22 Птн 09:11:52 #119 №2522743 
>>2521908
Typedef struct почти никогда не нужен и часто вреден (плодит сущности, скрывает инфу о сложности объеета).
Аноним 25/11/22 Птн 12:21:01 #120 №2522855 
Помогите исправить пример с замыканиями на GCC:
https://pastebin.com/4pmN1LCd
Компилируется, но вылетает при запуске.
Аноним 25/11/22 Птн 12:37:07 #121 №2522863 DELETED
>>2522855
>замыканиями на GCC
Даже не знал про такое, на хуй оно не нужно. Сделой int base статик и не еби мозг.
Аноним 25/11/22 Птн 12:39:13 #122 №2522864 
>>2522855
> return fn;
Нельзя.
Аноним 25/11/22 Птн 16:30:34 #123 №2523038 
>>2522855
На ideone код работает, но переменная получается неинициализирована из за того, что её функция не вызывается. Только не понятно, зачем так делать, зачем вызывать только маленькую функцию напрямую. Ну и static на функции не имеет смысла.
Аноним 25/11/22 Птн 17:56:04 #124 №2523123 
Привет, чувачки. Появилась идея визуализировать всю оперативную память на комплюктере; для этого я буду слать память кусками на гпу и выводить её в текстуру и показывать на экране. Вопрос такой, можно ли выполнить подобный код из прилолжения:
Взять указатель натурально нулевой ячейки памяти, прочесть следующие 100500 байт, оступить на 100500 байт, прочесть следуюшие 100500 и так пока все 16 гиг оперативы не будут пройдены?
Аноним 25/11/22 Птн 18:00:54 #125 №2523132 
>>2523123
нет
только в привилегированном режиме
Аноним 25/11/22 Птн 18:01:30 #126 №2523134 
>>2523123
Гугли виртуальную память
Аноним 25/11/22 Птн 18:35:56 #127 №2523169 
>>2520851
Использую
typedef struct NODE {
...
} Node;
Аноним 25/11/22 Птн 18:39:03 #128 №2523172 
>>2519987
Сравнивать можно, только надо обязательно указывать точность. Вместо if (a < b) будет if (b - a <= 0.001) например.
Аноним 25/11/22 Птн 19:02:58 #129 №2523197 
>>2523172
< или > можно же делать, если с пониманием
Аноним 26/11/22 Суб 12:02:27 #130 №2523690 
>>2523473
East Germany
не ахуел?
Аноним 26/11/22 Суб 19:20:49 #131 №2524121 
Анонасы, поясните за GNU C. Это что за зверь такой и зачем о нужен?
Аноним 26/11/22 Суб 19:33:55 #132 №2524143 
>>2524121
Самый популярный коньпилятор под юниксы, множество архитектур и расширений в нем. В последнее время появилась альтернатива: clang.
Аноним 26/11/22 Суб 19:38:13 #133 №2524149 
>>2524143
Я именно диалект GNU C имел ввиду, а не GNU compiler collection.
>расширений в нем
Вот это уже ближе к теме.
Аноним 26/11/22 Суб 19:59:49 #134 №2524159 
>>2522855

Хуита какая-то. Это ведь все на стеке остается, куда ты пытаешься сослаться. Может структуру какую заебашить? И держать там стейт и указатель на функцию. Правда не понятно нахуя оно тогда надо.
Аноним 26/11/22 Суб 20:06:56 #135 №2524167 
>>2495049 (OP)
>единственному идеальному и всесторонне годному средству программирования как на системном, так и на прикладном уровне
Ты это про С++ штоль? Ничего против С не имею, хороший язык который, однако, уже неактуален в силу наличия крестов. Они удобнее ну практически во всём, особенно когда речь идёт о жирном прикладном софте или геймдеве.
Аноним 26/11/22 Суб 20:08:41 #136 №2524169 
>>2523172
if (abs(b-a) . . .)
Аноним 26/11/22 Суб 20:39:54 #137 №2524202 
>>2524167

Дай угадаю. Ты вчера начал учить кресты? Или через 10 лет разработки веб-параш на питухоне решил пойти посмотреть что там за C++ такой?
Аноним 27/11/22 Вск 00:06:35 #138 №2524349 
>>2511834
спасибо, в целом я сам плюс минус разобрался, но с ссылками этими стало чуть понятнее. эти источники мне гугл не выдавал, может искал не правильно, не знаю.
Аноним 27/11/22 Вск 01:39:37 #139 №2524388 
>>2524202
Тоже считаю что он прав.
Не надо воспринимать плюсы как современное говно, в которое неклторыеиуебки хотят его превратить. Плюсы вполне себе эволюция си, пиши на в ортодоксальном стиле и в хуй не дуй. Подводных нет - одни профиты.
Аноним 27/11/22 Вск 04:27:10 #140 №2524511 DELETED
>>2524167
>в силу наличия крестов
Так парадигмы разные, кресты это же ООП кторое на хуй не нужно.
Аноним 27/11/22 Вск 04:31:38 #141 №2524515 
>>2524511
Сразу видно вебпарашного раба, поди еще эплолох латентный.
Аноним 27/11/22 Вск 05:20:37 #142 №2524528 
>>2524202
>>2524511
Сразу триггернулись. Вы вообще к чему-то помимо шаражных ардуинок касались? В реальном мире большинство работы это крупная работа. Работа требующая четкой структуризации и документации. Кресты вообще ничего не навязывают и позволяют пользоваться языком как хочешь, что открывает им двери в разработку больших проектов. Сишечка так не может.
>>2524388
>Не надо воспринимать плюсы как современное говно, в которое неклторыеиуебки хотят его превратить.
Не надо вообще его никак воспринимать. Он максимально гибкий. Может быть современным ЯП, где ты никогда не прикоснешься к памяти напрямую, а может быть и старомодным задротством с дотошным менеджментом памяти. Каждому своё.
Аноним 27/11/22 Вск 06:29:55 #143 №2524537 DELETED
>>2524528
>Кресты вообще ничего не навязывают и позволяют пользоваться языком как хочешь, что открывает им двери в разработку больших проектов.
В голосяндру
Аноним 27/11/22 Вск 06:49:08 #144 №2524543 
>>2524528
>>2524167

Будь плюсы и вправду тем о чем ты говоришь, то си конечно бы давно умер
Но как видишь, живее всех живых
Аноним 27/11/22 Вск 07:14:24 #145 №2524550 
>>2524543
>Но как видишь, живее всех живых
Как я вижу, си мертвее мертвого. Даже на всяких ардуинах питоны накатывают, а уж про нормальные программы для компьютера и речи быть не может, си просто негоден совершенно.

Си как язык/компилятор - абсолютно мертв. Жива только сишная парадигма программирования за счет поддержки кестами, которые и есть живой язык. Так что этот тред по факту тред крестов с сишной парадигмой, а тред крестов это тоже тред крестов, но про более новые парадигмы.
Аноним 27/11/22 Вск 07:18:55 #146 №2524551 
>>2524550
Мне твое мнение о ардуинках конечно очень интересно, но попробуй на том же хх ру посмотреть, актуальны ли си ещё или нет, ищут ли работадатели новых людей чтобы писать сишный код или нет
Аноним 27/11/22 Вск 07:26:53 #147 №2524553 
>>2524551
Спизданул ты, а искать пруфы мне? Чтож, слив засчитан, факт мёртвости си подтвержден.
Аноним 27/11/22 Вск 08:53:39 #148 №2524569 
>>2524528

А можешь показать что не так со структуризацией и документацией в чистом C?

Конкретно с этим я проблем не замечал в проектах на C.
Аноним 27/11/22 Вск 09:18:00 #149 №2524575 
>>2524569
Язык не обеспечивает этого, всё переложено под ответственность программиста, требуя от него высокой квалификации и дисциплины.

Другие же языки наоборот, рассчитаны на безграмотных дебилов, и жестко форсят "правильный стиль" своим синтаксисом. Первой ласточкой был паскаль, ну а современные языки лишь последователи этого подхода.
Аноним 27/11/22 Вск 16:23:15 #150 №2524867 
Значит, смотрите, аноны. Я предлагаю вам завязать с платформозависимостью и перекатиться, в конце концов, на мою виртуальную машину.

общие хэдер для ассемблера и интерпретатора:
https://pastebin.com/ayWE4WpU

ассемблер:
https://pastebin.com/Mnq2hMRk

работа с лейблами:
https://pastebin.com/jYYqna0R
https://pastebin.com/mk0AbiE8

интерпретатор:
https://pastebin.com/NJ3LeN1Z

Пример программы (тестировал, работает, печатает "ABCDEFGHIJ"):
mov r0 10
mov r1 65
.l0
mov m0 r1
write m0
add r1 1
sub r0 1
jmpif .l0 r0

Вам осталось сделать компилятор сишечки под это говно, и можно жить.
Аноним 27/11/22 Вск 16:49:59 #151 №2524900 
Ананасы, подскажите, чёт я никак не могу запомнить, в сях есть инициализация по умолчанию нулями?
если я делаю вот так
int a[100000];
это значит что уже все элементы массива а это нули?
Аноним 27/11/22 Вск 17:27:22 #152 №2524946 
>>2524900
Зависит от того где ты это обьявляешь
Аноним 27/11/22 Вск 17:30:29 #153 №2524954 
>>2524946
в файле .c
Аноним 27/11/22 Вск 18:03:39 #154 №2524995 
>>2524954
файл на SSD, или на HDD?
Аноним 27/11/22 Вск 18:06:48 #155 №2524997 
>>2524995
серьёзно? Мне надо кросплатформа, но вообще hdd
Аноним 27/11/22 Вск 18:07:14 #156 №2524999 
>>2524997
то есть ssd
Аноним 27/11/22 Вск 18:18:45 #157 №2525006 
>>2524954
Если ты объявил ее как глобальную переменную, то занулится
Если в мжйне, то может быть занулится ,может быть нет
Аноним 27/11/22 Вск 19:36:36 #158 №2525074 
>>2524900

int a[1000000] = { 0 };
Аноним 29/11/22 Втр 01:47:01 #159 №2526095 
>>2524995
Проиграл
Аноним 29/11/22 Втр 19:59:43 #160 №2526777 
>>2512253
а на байтоёбский паёк вкатуну возможно будет выжить? или системное программирование как вторая работа годится только
Аноним 30/11/22 Срд 03:08:37 #161 №2526936 
>>2495049 (OP)
>oualline.com/books.free/style/index.html
Ссылка битая и по ней не гуглится название книги. Что там за книга была?
Аноним 30/11/22 Срд 15:33:25 #162 №2527282 
>>2526936
Steve Oualline, "C, Elements of Style"
Аноним 30/11/22 Срд 16:32:37 #163 №2527321 
Таки сделал работающее замыкание на Си (GCC)

https://pastebin.com/Ph61AtVj

На JavaScript аналогом будет

function summ(x) { return function(y) { return x + y; }; }
Аноним 30/11/22 Срд 16:41:35 #164 №2527325 
#define TAG_OPTION_NONE 0
#define TAG_OPTION_NODE 1

union OPTION {
struct { int tag; } TAG;
struct { int tag; } NONE;
struct { int tag; int value; } NODE;
};

Сейчас думаю над ADT и паттерн матчингом в Си.
Аноним 30/11/22 Срд 18:08:31 #165 №2527392 
>>2527325

А зачем? Не проще ли написать интерпретатор языка который будет все это лаконично поддерживать? Oh wait...
Аноним 01/12/22 Чтв 12:35:47 #166 №2527799 
>>2527282
Спасибо
Аноним 01/12/22 Чтв 12:43:54 #167 №2527806 
>>2495049 (OP)
Как гуглить инфу (статьи, книги) по Си? Как гуглить вакансии? Дело в том, что из за короткого названия почти всегда показывает результаты по C++.

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

Получается, что на Си за деньги можно писать только под мелкие железяки? На удаленку надежды тоже нет?
Аноним 01/12/22 Чтв 15:25:40 #168 №2527979 
>>2527806
>Как гуглить инфу (статьи, книги) по Си
Форум RSDN.ru там есть поиск.

>Как гуглить вакансии
Мы не нужны в этой стране.

>что обычно пишут на Си за деньги и какие требования
Ну скажем, внутри автобуса ЛиАЗ крутится FreeRTOS, а мосты в Санкт-петербурге разводят с помощьюQNX, под них и пишут.

>Для C++ вакансии поинтересней
"Доширак, велосипед, зеркалка и интересные проекты на C++", ага.

>Получается, что на Си за деньги можно писать только под мелкие железяки
Так и есть, даже форумы живы: arduino.ru и electronix.ru активны весьма. Но вакансий там нет (объявления от Kraftway и НИИСИ не считаем).
Аноним 01/12/22 Чтв 16:09:28 #169 №2528031 
>>2527979
Много ли зарабатывают люди, которые собирают пакеты для дистрибутивов? А те, кто делает драйвера для ядра Linux?
Аноним 01/12/22 Чтв 16:20:06 #170 №2528054 
>>2527979
>Форум RSDN.ru там есть поиск.
Это троллинг тупостью? Еще бы посоветовал фидонет.

>Мы не нужны в этой стране.
Я спросил как гуглить вакансии, а не поучений в какой стране жить.

>Ну скажем, внутри автобуса ЛиАЗ крутится FreeRTOS, а мосты в Санкт-петербурге разводят с помощьюQNX, под них и пишут.
Это снова троллинг тупостью? Сейчас не советское время чтобы рассматривать такое в качестве работы. И сколько же таких вакансий в процентах?

>"Доширак, велосипед, зеркалка и интересные проекты на C++", ага.
Теперь точно ясно, что твоя цель только повыпендриваться.

>Так и есть, даже форумы живы: arduino.ru и electronix.ru активны весьма.
Нет, не так. Есть много вакансий где надо писать что-то под линукс. Ты кроме того, что тролль, еще похоже не в теме. И ты не ответил на главный вопрос, как гуглить любую инфу по Си, если название языка состоит всего из 1 буквы и по этой причине результаты запросов или по C++ или вообще нерелевантны.
Аноним 01/12/22 Чтв 16:32:46 #171 №2528071 
>>2527806

> Как гуглить вакансии?

Попробуй загулять компании из интересующих тебя областей (например исходя из того, что ты сам хотел бы делать). Если контора приличная, то на сайте будет список вакансий и там наверняка будет что-то связанное с C/C++.
Аноним 02/12/22 Птн 00:36:29 #172 №2528504 
>>2528444
Танцующим.
Аноним 02/12/22 Птн 00:37:09 #173 №2528505 
Как вы теперь будете жить, зная что strlen() это UB? )))
он же написан на асме и читает слова за пределом массива )
Аноним 02/12/22 Птн 01:08:30 #174 №2528511 
>>2528054
Если гуглишь на русском, то прямо так и пиши "Си", на англе иногда помогает "pure C".
Хз, что ты там под линух на сях собрался делать, но даже в моей госпараше уже давно укатились на Qt.
Аноним 02/12/22 Птн 01:22:49 #175 №2528515 
>>2528054
Не пользуйся гуглом, он совсем скурвился просто, раз такое не ищет. У меня такая проблема не только с Си, но и с другими областями, например если писать вопросы по D&D 3.5, он перекидывает на D&D 5, а еще он часто подменяет даже слова в кавычках, искал something "once", а он подсвечивает что нашел something "many", не шучу, буквально такая замена была.
(Эх, скорей бы Zig стал production ready, вот он из трех букв и легко ищется)
Аноним 02/12/22 Птн 01:27:00 #176 №2528519 
>>2528510
https://en.wikipedia.org/wiki/Dancing_Links
Аноним 02/12/22 Птн 01:46:36 #177 №2528529 
>>2528525
я и сам не знал, а Кнут уже 40 лет знал.
Аноним 02/12/22 Птн 06:29:27 #178 №2528576 
>>2528505
>UB
Что это такое?
Аноним 02/12/22 Птн 07:33:04 #179 №2528594 
>>2528576
Это Си детка
Аноним 02/12/22 Птн 14:59:37 #180 №2528870 
недавно узнал, что вместо array[index] можно писать: index[array], потому что и то, и то транслируется в *(array+index) лооооооол О_о
зачем так? такое ощущение, что они на похуях делали этот язык
Аноним 02/12/22 Птн 16:12:12 #181 №2528931 
>>2528870
>2022 год
>зумеры открывают для себя, что Си - это высокоуровневый переносной ассемблер с мощной системой арифметики указателей.
Аноним 02/12/22 Птн 16:18:37 #182 №2528941 
>>2528931
Еще немного и догадается почему нумерация элементов массивов с нуля.
Аноним 02/12/22 Птн 20:32:45 #183 №2529162 
>>2528941
А кто догадается до отсутствия массивов?
Аноним 02/12/22 Птн 20:41:16 #184 №2529175 
>>2528870
> такое ощущение, что они на похуях делали этот язык
Ты себе не представляешь насколько на похуях его делали.
Например можно было объявить функцию так
foo(a, b) { return a + b; } Потому что похуй )) Если вернул значит это аккумулятор, а значит инт ))
С другой стороны а ты видел госдолг другие языки, че там? Алгол, Фортран, Кобол
Аноним 03/12/22 Суб 15:57:30 #185 №2529784 
Деды, вы тут сидите и ностальгируете? Суть треда то в чем? На сишке сегодня только курс по информатике рассказывают. Никто на этом старье (time()) не пишет, кроме первокурсников
Аноним 03/12/22 Суб 16:16:40 #186 №2529798 
image.png
image.png
>>2529792
Ладно, главное, чтобы хватало.

А мы, никудышные, после работы в А офисе, поедем в рестик, а после всю ночь трахать красивых женщин. Куда уж нам до вас, идейных...
Аноним 03/12/22 Суб 18:41:28 #187 №2529897 
>>2529798
Если для тебя 410 нормальная зарплата, чел... идейные столько тратят в месяц только на своих котов.
Аноним 03/12/22 Суб 20:24:04 #188 №2529977 
>>2529784
на С- пишут прошивки для всех устройств, ядра ОС, драйвера и вообще всё. Я только на Си научился понимать и писать программы, остальные языки слабые, по сравнению с Си. Потому что- позволяют писать программы, самым простым и единственным способом.
Аноним 03/12/22 Суб 20:26:50 #189 №2529983 
>>2529784
>>2529798
но си ведь прародитель почти всех популярных языков, хотя бы за это он заслуживает уважения
на самом деле си - это старый, трудный в общении дед, который временами творит и несет полную дичь, но если бы, когда-то этот дед не ебашил, мы бы сейчас находились бы в анальном рабстве у какого-нибудь предка кобола, а также корпораций с их лицензионной политикой
при таком положении дел, вся индустрия застряла бы в начале 00-х, и размер ваших зарплат был бы там же
и далеко не факт, что кобол всех бы заебал, и люди просто ушли бы в паскаль/аду, если посмотреть как форсится ООП при всех его недостатках, то запросто можно представить ситуацию, когда на первом месте у всех стояла бы идея близости к естественному языку
поэтому проявите уважения к деду, напишите на досуге хотя бы пару строчек на нем, он же ведь за вас воевал...
кста, здесь прикольно показаны его дети https://www.youtube.com/watch?v=lDjZA0wodGQ
Аноним 03/12/22 Суб 20:56:24 #190 №2530003 
SEH.png
Слабо?
Аноним 03/12/22 Суб 21:02:06 #191 №2530005 
>>2530003
Переполнение буфера или ООМ поймает?
А вообще никогда не понимал как setjmp работает
Аноним 03/12/22 Суб 21:19:06 #192 №2530019 DELETED
>>2495049 (OP)
Как вам?
Аноним 03/12/22 Суб 21:43:41 #193 №2530032 
>>2530019
Да вроде все норм, а что?
ASCII коды цифр.
Аноним 03/12/22 Суб 22:33:45 #194 №2530056 
>>2529897
Ну показывай котов, миллиардер пососишный
Аноним 03/12/22 Суб 23:21:13 #195 №2530076 
>>2530019
На 159 уже проееб
Аноним 03/12/22 Суб 23:39:09 #196 №2530090 
asciifull.gif
>>2530076
>На 159 уже проееб
Сам ты проёб, блядь. Возьми и посчитай руками.

мимопроходил
Аноним 04/12/22 Вск 01:42:19 #197 №2530150 
1625500222264.png
>>2530076
Просто фокус, подобрали такие что
48*3+a+b+c=100a+10b+c
a=1 иначе улетим в 200
144+1-100+b+c=10b+c
45=9b, т.е. вторая цифра 5
c сокращается, значит последняя цифра может быть любой
Аноним 04/12/22 Вск 07:23:49 #198 №2530241 
>>2512962
а нахуй нужен педантик?
Аноним 04/12/22 Вск 07:34:43 #199 №2530244 
>>2518783
так ну убунте для чека нужно больше флагов -lm -lpthread -lrt -lsubunit
Аноним 04/12/22 Вск 07:37:39 #200 №2530245 
>>2520851
typedef struct {
...
} Node_t;
Аноним 04/12/22 Вск 07:52:58 #201 №2530250 
>>2524121
Ну это реализация стандартной библиотеки C и posix библиотеки C с дополнениями. Например функция argp_parse есть в GNU C, которая не входит в posix.
Аноним 04/12/22 Вск 08:11:06 #202 №2530259 
>>2524149
Скорее всего просто переименовали GNU C Compiler в GNU Compiler Collection.
Что же касается расширений, то вот например https://www.kernel.org/doc/htmldocs/kernel-hacking/conventions-gnu-extns.html
Если у тебя будет простой компилятор соблюдающий стандарт Си, то без этих расширений ты ядро линуха все равно не соберешь.
Аноним 04/12/22 Вск 10:55:15 #203 №2530312 
>>2524149
>Я именно диалект GNU C имел ввиду
Так пойди почитай доки

Предисловие

Это справочное руководство по языку программирования C в его реализации. сборником компиляторов GNU (GCC). В частности, это руководство направлено на документ:

Стандарт ANSI C 1989 года, широко известный как «C89».
Стандарт ISO C 1999 года, широко известный как «C99», в той мере, в какой C99 реализуется GCC.
Текущее состояние расширений GNU для стандартного C

В данном руководстве C89 описывается как базовый. Возможности C99 и расширения GNU явно помечены как таковые.

По умолчанию GCC компилирует код как C89 плюс специальные расширения GNU. Много C99 поддерживается; как только будет доступна полная поддержка, компиляция по умолчанию диалект будет C99 плюс расширения, специфичные для GNU. (Некоторые из Расширения GNU для C89 стали стандартными, иногда слегка измененными. особенности языка в C99.)

Язык C включает набор директив препроцессора, которые используются для такие вещи, как замена текста макроса, условная компиляция и файл включение. Хотя обычно описывается в руководстве по языку C, GNU C препроцессор был тщательно задокументирован в The C Preprocessor , отдельное руководство по предварительной обработке для C, C++ и Objective-C. программы, так что это не включено здесь.


https://www.gnu.org/software/gnu-c-manual/gnu-c-manual.html#Preface
Аноним 04/12/22 Вск 11:43:36 #204 №2530360 
image.png
>>2530056
Аноним 04/12/22 Вск 12:20:33 #205 №2530377 
Дарова всем.

Недавно получил предложение на стажировку(Embedded C)
Может ли кто-то посоветовать книжек для дальнейшего развития( читал только Стивена Прата да практиковался на hackerrank)

Да и есть ли какие-то годные материалы, чтобы с виндузятника перейти на Линукс, как этого будет требовать работа?
Аноним 04/12/22 Вск 12:50:38 #206 №2530428 
>>2530019
очень тупо, в Си все входные и выходные данные нужно паковать в структуры
struct N {
// тип
// переменная
}
и обработчики данных типа
N add(N1,N2) которые уже будут раскидывать по другим обработчикам в зависимости от типа- addInt(N1,N2)
addString(N1,N2) addIntArray(N1,N2) и т.п
к тому же, в таком случае можно задать неявные поведения при нарушениях граничных условий, например занулять больший массив или уменьшать его размер.
Вообще, все входные данные программы- нужно всегда держать под контролем, нарушения типов не должно происходить в принципе, это профанация, когда разные типы сочетаются, всего лишь потому что операторы это позволяют.
Аноним 04/12/22 Вск 14:37:33 #207 №2530526 
>>2530377
Уже согласована стажировка или просто получил рассылку?
Аноним 04/12/22 Вск 17:02:19 #208 №2530665 
Помогите, пожалуйста, с домашним заданием. Суть такова, надо создать динамичный массив запрашиваемой длины, потом принимать ввод от пользователя и создавать динамичный массив из char'ов внутри каждого элемента. Потом все записать в файл. Вот мой код, в нем почти ничего не работает.

https://pastebin.com/LDHHLpb5
Аноним 04/12/22 Вск 17:45:30 #209 №2530714 
>>2530665

Подумай над задачей и напиши алгоритм на листочке, проверь что понял условия и как ее решать. Потом запрограммируй его на C. Не учат что ли?
Аноним 04/12/22 Вск 17:47:12 #210 №2530722 
>>2530714
Нет. Я не понимаю, как делать. И нас по сути не учат, почти все заставляют искать самим.
Аноним 04/12/22 Вск 17:53:21 #211 №2530735 
>>2530665

Обрати внимание на тип переменной p, как ты аллоцируешь под это память и условие твоей задачи (хранить в памяти массив строк). Что с этим всем не так?
Аноним 04/12/22 Вск 17:56:53 #212 №2530742 
>>2530735
Я не понимаю, как это работать должно. Вот создали массив, как дальше внутри каждого элемента массив создать?
Аноним 04/12/22 Вск 18:02:40 #213 №2530752 
>>2530742

Точно так же, как и первый (через malloc). Будут отличаться только типами (char и char*) соответственно.
Аноним 04/12/22 Вск 18:03:17 #214 №2530753 
>>2530752
char\\ и char*
Аноним 04/12/22 Вск 18:16:44 #215 №2530761 
>>2530752
Я не понимаю как объявлять это и потом использовать.
Аноним 05/12/22 Пнд 00:05:27 #216 №2531041 
>>2530377
Попадалось несколько книг именно по Си для микроконтроллеров.
Аноним 05/12/22 Пнд 00:09:07 #217 №2531042 
>>2530761
насколько я понял твое задание, у тебя должен быть массив массивов.
Аноним 05/12/22 Пнд 00:56:37 #218 №2531056 
>>2530526
Согласована, если их и меня все устроит, то через три месяца могут джуном взять
Аноним 05/12/22 Пнд 01:00:20 #219 №2531057 
>>2531041
А ты случаем не запомнил их?
Буду благодарен
Аноним 05/12/22 Пнд 01:10:17 #220 №2531061 
>>2531057
Не помню, они все называются примерно embedded c books
Аноним 05/12/22 Пнд 01:23:49 #221 №2531064 
image.png
image.png
image.png
image.png
>>2530665
Оно?
https://paste.debian.net/1262881/
Аноним 05/12/22 Пнд 01:29:58 #222 №2531065 
>>2531056
Почему они не наймут готового джуна?
Аноним 05/12/22 Пнд 02:06:50 #223 №2531086 
>>2531064
Алсо, анон, я только когда в кровать лег, то понял, что в функции AbuInit обосрался. Исправь
>char buff[sizeof(int)];
и
>fgets(buff, BUFF_LEN, stdin);
НА
>char buff[32];
и
>fgets(buff, 32, stdin);

Не обязательно 32, можно и любое другое число, но не меньшее, чем потенциально может ввести пользователь. Я сам не прогер и сишку только в универе щупал 5-7 лет назад, плюс прибухнул чутка и подумал, что выделяю байты через char. Так-то оно верно, если у тебя на машине char в 1 байт, но atoi() оперирует символами, а не байтами, поэтому 4 символа под количество строк - это мало, и если ввести больше, то получишь сегфолт.
Аноним 05/12/22 Пнд 12:51:40 #224 №2531334 
>>2530377
Какой конкретно эмбедед?
У тебя там микроконтроллеры или что-то, на что линух можно поставить?
Аноним 05/12/22 Пнд 12:56:11 #225 №2531342 
>>2531065
Без понятия
Аноним 05/12/22 Пнд 12:56:40 #226 №2531343 
>>2531334
Микроконтроллеры(STM32)
Аноним 05/12/22 Пнд 12:57:20 #227 №2531346 
>>2531061
Спасибо
Аноним 05/12/22 Пнд 13:06:44 #228 №2531361 
1670234803756.jpg
>>2531343
О вот это уже понятно.
Примерно все будешь понимать в процессе работы с микрухой. Для начала тебе нужен даташит на твой контроллер, открываешь его и читаешь для начала про тактирование и как его правильно настроить - это ты будешь делать в каждом проекте в самом начале. Дальше, в зависимости от задачи, смотришь какую периферию ты будешь использовать и читаешь в даташите про настройку периферии, параллельно смотришь как она вообще работает, если до этого не знал.
Из книжек могу вот эту посоветовать, для понимания архитектурных особенностей очень полезна. Там много полезной инфы, даже если у тебя не М3.
Ну и когда будешь чувствовать себя нормально среди всей этой инфы можно начать вкатываться в RTOS. Есть хендбук по FreeRTOS'y например.
Аноним 05/12/22 Пнд 13:09:10 #229 №2531365 
>>2531361
Забыл добавить. К каждому контроллеру обычно есть короткая выдержка из тестовых примеров разных проектов от оф разраба. Обычно называется что-то типа Quick Start Guide. Его читаешь вместе с даташитом.
Аноним 05/12/22 Пнд 15:42:06 #230 №2531598 
>>2531342
>Без понятия
Почему не поинтересовался? Лучше задавать вопросы, чтобы не попасть на кидалово. Возможно у них корыстный интерес попользоваться тобой. А может просто спрос на такие вакансии низкий.
Аноним 05/12/22 Пнд 16:44:19 #231 №2531672 
Посаны, пытаюсь написать кольцевой буфер, хранящийся в памяти стм32, но везде в примерах динамическая память.
я тупой, киньте пжлста понятный пример как сдлеать кольцевой буфер не с динамической памятью.
заранее спс
Аноним 05/12/22 Пнд 17:06:18 #232 №2531698 
>>2531672
Я отсюда брал когда-то.
https://habr.com/ru/company/otus/blog/557310/
Просто заранее проинициализируй его нужным размером.
Аноним 05/12/22 Пнд 17:19:15 #233 №2531714 
Помогите нубику решить задачку

Ввести строку. Вывести пословно в порядке убывания длин слов.

Использовать указатели и Разрешены к использованию следующие функции: printf, scanf, getchar (считывание символа с клавиатуры), gets, fgets.
Аноним 05/12/22 Пнд 18:23:46 #234 №2531819 
>>2531714
Структуры можно использовать?
Аноним 05/12/22 Пнд 18:24:03 #235 №2531821 
>>2531819
Неа
Аноним 05/12/22 Пнд 18:26:03 #236 №2531822 DELETED
>>2531714
Сортировку самому писать, что ли?
Аноним 05/12/22 Пнд 18:27:37 #237 №2531823 
image.png
>>2531822
Мне бы просто суть, решение не обязательно
Аноним 05/12/22 Пнд 18:41:03 #238 №2531847 
>>2531821
И функции нельзя? Чисто портянку ебануть?
Аноним 05/12/22 Пнд 18:42:15 #239 №2531848 
>>2531598
Честно говоря, почему то не задумывался об этом, так как был очень рад самому факту получения работы.
Ну в Украине не особо много вакансий embedded, да я и сам почти не встречал тех, кто этим занимается/хотел бы заняться
Аноним 05/12/22 Пнд 18:43:24 #240 №2531853 
>>2531365
Спасибо за минигайд
Аноним 05/12/22 Пнд 19:31:03 #241 №2531934 
Вкатился\вкатываюсь в системач.

Книги по ассемблеру x86, x86-64, изучение разных режимов памяти в языке ассемблера, книга по С от Дениса Ритчи, книга по С++ и опп от Страуструпа, книга по схематехнике. Книга по устройству осей от таннебаума, книга по сетям от таннебаума...

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

А что делать? Вот я уже чувствую в себе силы написать реальную рабочуюТМ фичу. Но что писать? Была идея написать программу которая бы восстанвливала файлы стёртые быстрым форматированием или даже целые тома и системы выпиленые очисткой таблицей разделов, но все эти программы уже запилены и запилены лучше меня, на велосипед время тратить не охота.

Что пилить то? Тупо понимаю что если я в области систем что не возьмусь пилить оно уже всё запилено.
Аноним 05/12/22 Пнд 19:32:57 #242 №2531937 
>>2531934
Может быть какой-нибудь инструмент написать для упрощёного редактирования реестра винды? Или написать программу по выводу температур с датчиков компьютера? Да всё это уже давно есть.А ну что писать, ну подкиньте идею, что можно под винду написать такое системное, какой-нибудь фильтр может в какой-нибудь стечок драйверов, может быть программу упрощающую какой-нибудь менеджмент...
Аноним 05/12/22 Пнд 19:36:17 #243 №2531944 
Была идея написать программу которая бы переводила двоичный код любого файла в пиксели и сохраняла это в формате .png, а потом этот .png опять раскодировать в любой файл, хоть в exe но такое тоже есть. Да что делать то блэт. В системаче уже как будто написано абсолютно всё что только можно. В линукс пока пытаться не буду, у меня хуже представления о его ядре, драйверах и прочем устройстве. Хотя арч таки осилил в сборке по гайду.
Аноним 05/12/22 Пнд 19:43:01 #244 №2531956 
>>2531937
Хотел тебе предложить херню связанную с линуксом, там очень много работы, но ты с ним не знаком.
>написать программу по выводу температур с датчиков компьютера
Попробуй эту идею развить. Серверное приложение считывает данные о состоянии ОС и отсылает данные в пакетах через сокеты клиенту. Клиент может быть любым: ГУИ-приложение, консольное приложение, веб-приложение. Эдакая телеметрия.
Аноним 05/12/22 Пнд 20:30:03 #245 №2532004 
Чего это си тред вдруг ожил?
У студентов зачеты начались или все в госуху вкатились дроны программировать?
Аноним 05/12/22 Пнд 20:41:43 #246 №2532017 
>>2531937
Напиши программу умеющую пищать динамиком материнки разную музыку. Чтобы именно динамиком, а не звуковой картой, чтобы ни в каких случаях звук не перенаправлялся на звуковую карту, иа играл именно аппаратный динамик воткнутый в материнскую плату.
Аноним 05/12/22 Пнд 21:21:14 #247 №2532060 
>>2531956
О нормально, это можно попробовать, спасибо

>>2532017
Даже не представляю как это реализовывать. Ну возможно через обращение к какой-то функций из биоса
Аноним 05/12/22 Пнд 21:25:00 #248 №2532066 
>>2531956
Подобное кстати вроде есть в powershell но там всё на уровне функицй-заглушок, оно есть, но не работает так как пока ещё не реализовано.
Аноним 06/12/22 Втр 00:13:45 #249 №2532303 
Аноны, а тут есть безопасники или реверсеры, кто занимается этим под линух или бывал на СТF и просто шарит?
Пытаюсь сделать маленькую роп цепочку, но у меня почему-то все как-то странно работает. Даже хз, есть ли смысл спрашивать.
Аноним 06/12/22 Втр 00:15:31 #250 №2532306 
>>2532303
>Аноны, а тут есть безопасники
Взлымвал соседский вай фай через кали линукс. Задавай вопросы.
Аноним 06/12/22 Втр 01:07:56 #251 №2532341 
>>2531714
задаешь статический массив char arr[1024][1024]; считываешь в цикле каждое слово в новый ряд массива. Потом пишешь свой strlen (функция измеряющая длину строки), который будет измерять длину каждого слова. Создаешь второй второй массив. Пробегаешься по исходному массиву со стрленом и самое длинное слово записываешь в первый ряд второго массива и так далее пока всё не запишется во второй массив в нужном порядке. Выводишь второй массив.
Аноним 06/12/22 Втр 01:24:42 #252 №2532349 
>>2531937
>Да всё это уже давно есть.
напиши программу, которая из любой программы создает портабле екзешник который можно запустить с флешки на любом компе без установки ОС, прямо флеш вставляешь вылезает меню с прогами в биосе, и запускаешь.
Аноним 06/12/22 Втр 08:58:56 #253 №2532465 
Снимок экрана от 2022-12-06 08-56-47.png
>>2531823
решил вспомнить си, написал такое на пикриле. Кто-то видит ошибку?
Аноним 06/12/22 Втр 12:19:34 #254 №2532557 
>>2532465
Что делает эта программа, пиши программы которые делают полезное, или не пиши вообще ничего.
Нахуй ты указатели тянешь в это, какую задачу этим решаешь?
Аноним 06/12/22 Втр 12:45:06 #255 №2532569 
>>2532349
Такое вообще реально написать? Программы винды же используют библотечные функции самой винды, из под биоса ты хуй их запустишь, только если какую-нибудь загрзочную версию винды прилепить к ним.
Аноним 06/12/22 Втр 13:01:06 #256 №2532585 
>>2532349
>>2532569
Такие решения на линуксе есть. Там статически слинкованный бинарник с миниОС на борту.
Аноним 06/12/22 Втр 13:02:33 #257 №2532586 
>>2532585
Ну линукс более модульно независимая ось, на винде такое врядли получится провернуть.
Аноним 06/12/22 Втр 13:15:06 #258 №2532598 
>>2532585
Берем такой бинарник
@
Запускаем wine
@
Профит???
Аноним 06/12/22 Втр 13:42:31 #259 №2532619 
>>2532557
Решает лабу анониму с двощей че доебался.
Аноним 06/12/22 Втр 14:30:07 #260 №2532671 
>>2531934
Шаг первый: пишешь свой яп
Шаг два: думаешь чего бы такого на нем написать
Шаг три: переход к первому шагу, но пишешь это уже на новом языке
Аноним 06/12/22 Втр 15:26:17 #261 №2532746 
берем такой бинарник
@
статически линкуем wine и его зависимости
@
получаем обычный live-образ дистрибутива.
Аноним 06/12/22 Втр 15:27:28 #262 №2532749 
>>2532465
>Кто-то видит ошибку?
Да, вообще под условия задачи не подходит.
Аноним 06/12/22 Втр 16:14:35 #263 №2532809 
>>2532557
>>2532465
короче поясняю - write() вывел сообщение раньше printf(), хотя он ниже по коду
Аноним 06/12/22 Втр 16:25:58 #264 №2532825 
>>2532569
>реально написать?
реально, но не для средних умов. А api винды что использует? Нихуя не использует, если экстрактировать оконное и юзер api, можно в мегабайт всё уместить. ОС Шиндовс- на 90% состоит из кучи говна и палочек, а также кучи драйверов к разному барахлу.
Линупс точно такое же дерьмо.
Аноним 06/12/22 Втр 17:13:24 #265 №2532882 
Снимок экрана от 2022-12-06 17-12-24.png
>>2531823
типа того
Аноним 06/12/22 Втр 17:14:28 #266 №2532887 
Тред - зоопарк дегенератов. Рассуждают об ОС без ОС, но при этом не могут даже писи-скрипером бибикнуть >>2532017 слишком слрожно.
Аноним 06/12/22 Втр 17:21:01 #267 №2532893 
Снимок экрана от 2022-12-06 17-20-24.png
>>2532887
я давно умею, потому-что я пол-книги Прата с++ прочёл.
Аноним 06/12/22 Втр 17:22:57 #268 №2532897 
>>2532825
Ядро винды сильно завязано на этом говне и палчках и часто если их не будет то оно просто работать не будет. Тот же гуй намертво ввареный в ядро, на лине его можно без задней мысли выпилить
Аноним 06/12/22 Втр 17:26:57 #269 №2532902 
> for (int w;
Проиграл.
Аноним 06/12/22 Втр 18:45:38 #270 №2533029 
>>2532882
только я не понял че он приебался к тому что переменная str инициализирована но не используется, я даже цикл for для этого написал.
Аноним 06/12/22 Втр 19:19:42 #271 №2533070 
>>2533029
Так ты только заполняешь (пишешь в него), но не используешь.
Аноним 06/12/22 Втр 19:23:30 #272 №2533078 
>>2532887
Без ассемблера это невозможно. Там же нужен outb(0x61)
Аноним 06/12/22 Втр 20:26:32 #273 №2533147 
>>2532902
Хороший язык, и конкурсы интересные.
Аноним 08/12/22 Чтв 01:44:26 #274 №2534636 
>>2532809
>короче поясняю - write() вывел сообщение раньше printf(), хотя он ниже по коду
бампую, почему функция write() лезет вперёд?
Аноним 08/12/22 Чтв 09:47:11 #275 №2534762 
>>2534636
UB
write нет в стандарте С
Аноним 08/12/22 Чтв 10:10:35 #276 №2534776 
>>2534636
Потому что printf буферизованный, для моментального вывода нужен flush.
Аноним 08/12/22 Чтв 10:44:12 #277 №2534795 
>>2534776
^ this
Аноним 08/12/22 Чтв 16:14:41 #278 №2535256 
я одноклеточная дифузорная туфля
че это такое
#ifndef SET_H
#define SET_H
extern const void Set;
void
add (void set, const void element);
void find (const void set, const void element);
void
drop (void set, const void element);
int contains (const void set, const void element);
#endif
Аноним 08/12/22 Чтв 16:15:17 #279 №2535257 
>>2535256
или хотя бы где прочитать про это
Аноним 08/12/22 Чтв 16:37:16 #280 №2535281 
>>2534776
Спс, понял.
Аноним 08/12/22 Чтв 17:54:22 #281 №2535347 
>>2535256
Очевидно, хедер для модуля множества.
Аноним 09/12/22 Птн 00:30:47 #282 №2535834 
Аноны, выручайте. Дали псевдокод, а я долбоеб. Как это написать?

стоимостьЧаса = 54
количествоЧасов = 396
коэффициентВычета = 0.10
суммаДоВычета = стоимостьЧаса количествоЧасов
вычет = суммаДоВычета
коэффициентВычета
суммаПослеВычета = суммаДоВычета – вычет
Аноним 09/12/22 Птн 00:59:17 #283 №2535855 
>>2535834
long long wage = 5400;
int hours = 396;
long long sumBefore = wage*hours;
long long deduct = sumBefore / 10;
long long sumAfter = sumBefore - deduct;
А ты думал нас на float поймать, сучечка?
Аноним 09/12/22 Птн 12:43:22 #284 №2536166 
>>2535256
>че это такое
#ifndef SET_H
#define SET_H
...
#endif
Это include guard, пишется чтобы файл только один раз подключился, иначе будут ошибки что ты переопределяешь уже существующие сущности.

extern const void Set;
Указатель на какой-то объект неизвестно какого (void) типа, который определен в другом (extern) файле

void add (void set, const void element);
Объявления функций. Заканчиваются ; и не содержат само тело функции. Само определение находится, скорее всего, в соответстующем .c файле, где уже расписан алгоритм, что именно делает эта функция.
Аноним 09/12/22 Птн 19:24:31 #285 №2536601 
>>2508452
Сейчас лень смотреть, вроде как у формочки есть метод getText()
Аноним 09/12/22 Птн 19:26:02 #286 №2536604 
>>2536601
Ой чё это я на старый пост отвечаю?
Аноним 09/12/22 Птн 23:34:57 #287 №2536906 
1529259515113.jpg
>>2535834
>>2535855
>А ты думал нас на float поймать, сучечка?

auto wage = 5400;
auto hours = 396;
auto sumBefore = wage*hours;
auto deduct = sumBefore / 10;
auto sumAfter = sumBefore - deduct;
Аноним 09/12/22 Птн 23:44:25 #288 №2536910 
1669021777408.png
>>2536906
Ахаха, поймал крестовика.
Аноним 09/12/22 Птн 23:45:08 #289 №2536912 
>>2536906
Читай что значит auto
Аноним 10/12/22 Суб 04:01:47 #290 №2537000 
Аноны, обьясните неофиту какой промежуточный формат данных использовать для их последующей передачи на ЭВМ с другой архитектурой и другим представлением чисел?
Если кратко, то я купил одноплатник на ARMе и написал для него серверное приложение, которое общается с клиентом на основной пекарне amd64. Проблема, собственно, в том, что отправленные с клиента данные интерпретируются сервером невалидно и как я понял, это происходит из за разного представления чисел на моих системах. Как передать значение в промежуточном формате?
Например, клиент: открыл сокет, упаковал данные в промежуточный формат, послал данные, закрыл сокет.
Сервер: открыл сокет, принял данные, распаковал промежуточный формат, закрыл сокет.
Аноним 10/12/22 Суб 05:17:49 #291 №2537005 
>>2537000
endianess
rfc1700 сказал, что нетворк протоколы должнs быть биг эндиан
https://embetronicx.com/tutorials/p_language/c/little-endian-and-big-endian/
Аноним 10/12/22 Суб 14:13:14 #292 №2537274 
>>2537005
ты когда последний раз видел big endian процессор?
То было во времена когда Интернет гоняли подключенным патч-кордом к серверам Sun.
Но Sun is down.

>>2537000
gRPC. на Golang, конечно же.
Аноним 10/12/22 Суб 15:32:01 #293 №2537344 
>>2537274
Процессор тут не при чем, это сетевой стандарт. Они могут быть оба LE, но если вызывают ntohs/ntohl то байты по сети летают BE
Аноним 10/12/22 Суб 18:15:37 #294 №2537513 
>>2537344
погоди но ПОЧЕМУ он стал стандартом?
Если из-за того что в 1970ом году интернет состоял из 100 компов с BE - шли бы они нахуй.
Аноним 10/12/22 Суб 18:17:16 #295 №2537517 
>>2537000
>Проблема, собственно, в том, что отправленные с клиента данные интерпретируются сервером невалидно и как я понял, это происходит из за разного представления чисел на моих системах.
А с чего ты взял?
Одни имеют одинаковую "оконечность".
Аноним 10/12/22 Суб 19:27:14 #296 №2537600 
>>2537517
>А с чего ты взял?
Например, отправляю на сервер число 4, а приходит число 27. Нашел обертку для сокетов в которой все числа приводятся в промежуточный формат и с ним все нормально получается. Похоже я чего-то не понимаю и это нюансы при работе с сетью как сказал этот анон >>2537344

>>2537005
Спасибо.

>>2537274
>gRPC. на Golang, конечно же
Зачем мне ГОвно, как оригинально, если я пытаюсь писать на Си?
Аноним 10/12/22 Суб 20:29:15 #297 №2537632 
>>2537600
>Например, отправляю на сервер число 4, а приходит число 27.
Так это число 4 не должно было испортиться. Оно в один байт влезает.
Нужно подробнее описать.
Аноним 10/12/22 Суб 20:36:53 #298 №2537639 
>>2537632
https://youtu.be/_yRW4nQFrB8
Вот, я нашел видео по данному поводу.
Аноним 10/12/22 Суб 20:43:33 #299 №2537640 
>>2537639 ну и где же там ARM в виде ?
Как конкретно называется твой одноплатник?
Аноним 11/12/22 Вск 15:21:30 #300 №2538145 
>>2537513
Тут всё написано максимально развёрнуто https://www.rfc-editor.org/ien/ien137.txt
Аноним 13/12/22 Втр 20:45:23 #301 №2540125 DELETED
>>2495049 (OP)
А еще над ЖС петухами смеялись.
Аноним 14/12/22 Срд 00:53:31 #302 №2540247 
>>2540125
Вы из какого паблика к нам сбежали?
>>2530019
Аноним 16/12/22 Птн 01:41:25 #303 №2542444 
IMG20221216023510.jpg
Обожаю запах сегфолтов по утрам.
Аноним 16/12/22 Птн 21:33:00 #304 №2543545 
>>2540125
'1' + '5' + '9' выводить целое число
Эквивалентно 48+53+57. Всё правильно же. Дальше не проверял.
Аноним 16/12/22 Птн 21:34:12 #305 №2543549 
>>2543545
Быстрофикс 49+53+57
Аноним 16/12/22 Птн 21:36:58 #306 №2543554 
>>2542444
Кстати хочу узнать вот моя прога может делать free(). Делать ли m = 0; Или как контролировать чтобы два раза free() не было?
Аноним 16/12/22 Птн 21:41:32 #307 №2543560 DELETED
>>2543554
Аноним 17/12/22 Суб 01:58:26 #308 №2543662 
16712270818300.jpg
Дарова, аноны, проработал я вот значит первые свои пять дней на позиции трейни -- попрятался в подвале от ракет, настроил корпоративный ВПН, клонировал с битбакета проект, поставил нужные проги и в общем настроил рабочий ноут под себя

Сам я trainee embedded C, со слова моего нынешнего куратора-сеньйора взяли меня чисто из-за какого-никакого понимания азов схемотехники и прочее лабуды физики старшей школы(я сейчас радиотехник второго курса уника)

Си знаю самые основы(синтаксис знаю, знаю про динамическую память, про организацию памяти и прочую хуету для новичков) -- читал Прату, Ритчи, решал задачки на хакерранке). Сказали, что надо разобраться в корпоративном CodeStyle пока что.

У кого-то есть идеи как можно дальше развиваться? В каком направлении учить Си для железяк, может кто-то может посоветовать курсы/видосы/книги/сайты? До этого я только дрыгал ножкам на Атмеге на ассемблере. Смотрю на рабочий код -- по синтаксису вроде все понятно, а что он делает -- нихуя

P.S.Да, я долбоёб, помогите,пожалуйста


Аноним 17/12/22 Суб 01:59:39 #309 №2543664 
>>2543662
Забыл добавить, что сейчас все проекты у нас на СТМке
Аноним 17/12/22 Суб 19:16:13 #310 №2544074 
>>2543662

Начни с прокачки своих софт-скиллов. наверняка у тебя есть руководитель/ментор для таких вопросов, хули ты на харкаче забыл
Аноним 17/12/22 Суб 19:52:32 #311 №2544100 
>>2544074
Боится что такое тупое говно тут же пидорнут, ведь если начать разговаривать правда вскроется.
Аноним 17/12/22 Суб 21:28:25 #312 №2544164 
>>2544074
>софт-скиллов
Нахуй не нужны в Си, это же не веб макакинг.
Аноним 17/12/22 Суб 23:34:44 #313 №2544311 
>>2544164

Тут работы нет, ага.
Аноним 17/12/22 Суб 23:47:55 #314 №2544318 
>>2544311
Для быдла нет, ага.
Аноним 18/12/22 Вск 00:51:33 #315 №2544372 
1671313893206.png
1671313893217.jpg
Есть одномерный массив, нужно перевести в двумерный зная количество строк и столбцов. Как это сделать?
Аноним 18/12/22 Вск 00:58:55 #316 №2544379 
>>2544372
for(int j = 0; j < h; j++)
_for(int i = 0; i < w; i++)
__flatarr[i + j * w] = arr[j];

можно соптимизировать до
for(int j = 0, k=0; j < h; j++)
_for(int i = 0; i < w; i++, k++)
__flatarr[k] = arr[j];
Аноним 18/12/22 Вск 00:59:45 #317 №2544383 
>>2544379
забыл про макабу, в общем та
arr[ i ] [ j ]
Аноним 18/12/22 Вск 01:09:09 #318 №2544392 
>>2544379
Благодарю
Аноним 18/12/22 Вск 01:17:07 #319 №2544395 
>>2544392
Я криво прочитал твое задание, у тебя наоборот надо в 2д массив из 1д массива.
Еще не забудь выделить память всем подмассивам. Иначе arr[0][...] не имеет смысла
Аноним 18/12/22 Вск 07:32:24 #320 №2544467 
>>2544164
Ребенок, значение что такое софт скиллы знаешь?
Аноним 18/12/22 Вск 09:06:59 #321 №2544496 
>>2544467
>фофт фкилы
Из сейфспейса капчуешь?
Аноним 18/12/22 Вск 16:26:27 #322 №2544809 
>>2543662
Крутой. Я вот на 3ем курсе ебланю, никуда не устроился до сих пор.
Аноним 18/12/22 Вск 17:28:00 #323 №2544875 
>>2544467
>значение что такое софт скиллы знаешь?
А ты?

Подсказываю безграмотному чухану:
>блат
>своячество
>кумовство
>чинопоклонство
>прихлебательство
>холуйство
>лицемерие
>показуха
>изворотливость
>ушлость
>пронырливость
>интриги
>подкопы
>подсиживание
Вот что такое это ваше пидорское "софт скилл". Быдло прикрыло кучу дерьма простыночкой и думает что незаметно и не воняет.
Аноним 18/12/22 Вск 17:35:12 #324 №2544886 
>>2544809
Да повезло мне, честно говоря. Меня рекрутерша сама нашла в линкедине -- так и прошел. Это с учетом того, что для вкатнуов сейчас во всем мире тяжело + я в Украине сейчас, а ты сам понимаешь, как сейчас у нас с работой
Аноним 18/12/22 Вск 19:00:30 #325 №2544993 
>>2544875
>>2544496

Так бы и сказали что не знаете
У вас на работе что-ли нормальных людей не было, что вы на всех какие то свои манямирки проецируете?
Аноним 18/12/22 Вск 19:22:10 #326 №2545023 
>>2544993
Обычно так делают безмозглые бесполезные тела, ходящие на работу часы отсиживать, а не пользу приносить.
Аноним 18/12/22 Вск 19:25:24 #327 №2545030 
>>2544886
Мне одногруппник недавно рассказывал, как тоже в эмбеддед вкатился, ответив "не знаю\не работал" на половину вопросов и сказав, что писал на Си, хотя вакансия на крестах была.
Аноним 18/12/22 Вск 19:41:50 #328 №2545060 
>>2545030
Да потому что хуй найдёшь кого: всем надо мобилььные дрочильни или фронт/бэк ебашить.

А ебаться с железками и байтоёбствовать нихуя нету желающих.
Аноним 18/12/22 Вск 19:48:50 #329 №2545068 
>>2544993
>ничего не отрицает
Ну вот и доказано. Удивительно, какое же грязное быдло тупое, всегда само доказывает правоту оппонента.
Аноним 18/12/22 Вск 19:54:38 #330 №2545071 
>>2545030
Ну у меня из знаний только основы Си, чуток в схемотехнике и сигналах шарю. Дрыгал ножками на Атмеге на ассемблере. Этого всего и хватило
Аноним 18/12/22 Вск 19:56:37 #331 №2545073 
>>2545071
Я буквально ты значит, только у меня в проге знаний больше, и они не ограничиваются только байтоëбством. А с железками да, только в универе познакомился.
Аноним 18/12/22 Вск 23:20:21 #332 №2545316 
1671394821416.png
Дратути, вопрос по алгоритмам. Не срочный, но буду бампать пока кто-то не поможет.

Короче открываю в программе пикчу, разбираю ее попиксельно, получаю двумерный массив размером как у открытой пикчи, где элемент равняется нулю если пиксель белый, и единице если пиксель черный.
Где-то на картинке есть одна черная рандомная клякса. Как найти координаты ее центра масс и соответственно координаты центра масс в массиве?
Аноним 18/12/22 Вск 23:28:29 #333 №2545320 DELETED
>>2545316
>Где-то на картинке есть одна черная рандомная клякса.
Ищешь описывающий прямоугольник кляксы, например первое пересечение с точкой снизу/сверху/слева/справа.
Аноним 18/12/22 Вск 23:36:51 #334 №2545325 
>>2545320
Разве это будет центром масс?
Аноним 18/12/22 Вск 23:39:59 #335 №2545327 DELETED
>>2545325
Вщетаешь из противоположных точек которые первые попались
Аноним 18/12/22 Вск 23:45:06 #336 №2545329 
>>2545327
Но я о том, что любая тонкая сопля торчащая из кляксы полностью смещает координаты нужной точки потому что описывающий прямоугольник будет охватывать и эту тонкую соплю. А в рельности тонкая сопля практически не влияет на общую массу кляксы. Поэтому вариант хороший, но это не центр масс вроде как.
Аноним 19/12/22 Пнд 00:56:24 #337 №2545379 
aiu404l-72.jpg
Я вот тоже алгоритмику пишу, написал отсечение вариантов, эвристику выбора, которая вероятностно срабатывает, ну да не суть. Так как работает отсечение вариантов заранее, чтобы не включать их в перебор, ветви и границы, соответственно есть несколько проверок во внутренних циклах, а внешний цикл - он по элементам массива (вообще рекурсивный перебор должен быть, но я размотал хвостовую рекурсию и сделал более быструю итеративную версию).
В общем, внешний цикл идет по j. Во внутренних циклах много проверок, куда в качестве выражения входит arr [ j ]. Я решил сделать еще одну свою оптимизацию, ввел одну переменную, в которую в начале проверок записывается arr [ j ].

Логика простая - чтение из переменной temp дает условную одну операцию
На чтение из массива - складываем адрес начала массива arr и индекс j, и читаем переменную, это дает условные две операции

Ну и прикол в том, что после моей низкоуровневой васянской оптимизации скорость просела где-то в 2-2,5 раза. То бишь обращение к элементу массива (где сначала получаем адрес сложением и потом читаем) оказалось быстрее обращения к переменной (где адрес уже известен). Это не вопрос, просто вот так бывает, анончики, иногда "свои" оптимизации оказываются даже вредными чем те, которые делает компилятор
Аноним 19/12/22 Пнд 00:58:00 #338 №2545380 
>>2545316
Гуглится за 5 секунд
https://stackoverflow.com/questions/22615005/how-to-find-center-of-mass-for-my-entire-binary-image
https://en.wikipedia.org/wiki/Image_moment
https://en.wikipedia.org/wiki/Centroid
Аноним 19/12/22 Пнд 01:01:00 #339 №2545381 
>>2545379
>отдознуть
>пихает кофеин с таурином
Тупая волна шумана...
Аноним 19/12/22 Пнд 01:02:28 #340 №2545383 
>>2544993
Да знаем, хипстерок, только какое отношение эта дрисня имеет к ламповой Си?
Ты всю жизнь будешь дрыгать ногами и мигать диодами, никакого роста у тебя не будет, максимум до начальника где ты будешь пинать такого же овоща аутиста.
Аноним 19/12/22 Пнд 01:05:21 #341 №2545385 
>>2545379
godbolt тебе в помощь.
Ну и конечно на x86 там не будет двух операций, а будет lea.
Аноним 19/12/22 Пнд 03:11:40 #342 №2545440 
>>2545383
> никакого роста у тебя не будет
> максимум до начальника
Признавайся, в нейросетка посты генеришь?
Аноним 19/12/22 Пнд 09:27:05 #343 №2545567 
>>2545440
>был быдлосом
>дорос до начальника
И где рост?
И главное, где
>программировани на си
?
Так до чего ты там дорос? Как был быдлом, так и остался. Как был нулем в программировании, так и остался. Запомни, быдло не растет. Может расти высота кресла и размер зарплаты, но как человек быдло остается говном навсегда, каким родилось, таким и помрет, простым говном.
Аноним 19/12/22 Пнд 11:52:01 #344 №2545712 
>>2545440
Начальник над Сишником - это и не начальник, а так, посмешище.
Аноним 19/12/22 Пнд 23:34:21 #345 №2546686 
mediaFSMCMp1WUAAhd1y.jpg
>>2545385
> и конечно на x86 там не будет двух операций, а будет lea

Благодарю. Реально себя тупым чувствую, но про lea узнал из твоего поста, не знаю как так вышло. В общем, благодарности, чаю и прелестниц тебе, анонче, спасибо, что ее упомянул! Я бы так необразованным и оставался. Всех благ и няшек!
Аноним 20/12/22 Втр 11:04:17 #346 №2546905 
Сяч, для того чтобы слинковать исполняемый файл к динамической библиотеке, необходимо чтобы либа уже была загружена в память? Если да, то помогите советом.

Есть либа, которая будет подгружаться основной программой в известную локацию памяти. Эта же программа будет вызывать функции из неё.
Точка входа в либу известна, но смещения её функций могут изменяться по мере модификации либы. Т.е. динамическая линковка отпадает, т.к. неизвестны точные адреса функций.
Как организовать лучше всё это? Я пока додумался до контроллера/драйвера либы и вызывать функции через обращения к нему. Например ctrl_lib (идентификатор функции, лист аргументов). Звучит пиздецки всрато, но ничего лучше я не выдумол.

инб4 да, я аутист
Аноним 20/12/22 Втр 11:19:42 #347 №2546930 
>>2546905
>Сяч, для того чтобы слинковать исполняемый файл к динамической библиотеке, необходимо чтобы либа уже была загружена в память?
Непоня. С чего бы? Вот есть сисколл (на самом деле библиотечная фнкция, но не суть), которым программа может сама себе открыть динамическую библиотеку
https://man7.org/linux/man-pages/man3/dlopen.3.html
И потом dlsym, чтобы адрес найти.
Аноним 20/12/22 Втр 13:06:52 #348 №2547093 
Screenshot.png
>>2546930
>Вот есть сисколл
Теперь понял, что динамическая линковка в процессе исполнения. Спасибо. А то пикрил навёл на противоположный вывод.

Анон, а у тебя случайно есть статьи по динамической линковке? А то само назначение процесса понятно, а что там происходит на уровне исполняемого файла, таблиц символов и самой либы - одно волшебство в голове.
Аноним 20/12/22 Втр 13:23:31 #349 №2547115 
>>2546905
> Есть либа, которая будет подгружаться основной программой в известную локацию памяти.
А разве сейчас линукс не в рандомную грузит?
Аноним 20/12/22 Втр 13:30:18 #350 №2547140 
>>2547093
У тебя статья про сборку, а спрашивал ты про работу.
Статью про динамическую линковку я тебе выше уже кинул, там и ссылки на все подробности, и примеры.
Аноним 20/12/22 Втр 14:30:34 #351 №2547233 
>>2545712
Доложил начальнику, что его на двачах обижают.
Аноним 20/12/22 Втр 15:31:56 #352 №2547295 
Вечер в хату,

питон макака на связи.
Нужно запарсить csv или xlsx. Может кто посоветует статьи, доки, туториалы?
Аноним 20/12/22 Втр 15:58:01 #353 №2547325 
>>2547295
А на питуне запарсить нельзя? Там же тоже есть функционал для ебания байтов и чтения файлов. Гуглишь структуру csv формата в интернете и вперед. Да и ставлю анус, что такие библиотеки уже существуют.
Аноним 20/12/22 Втр 16:35:51 #354 №2547384 
>>2547325

В питуне я написал парсер, но у меня ооочень большие csv и xlsx, а питон ооочень долгий.
Аноним 20/12/22 Втр 16:52:40 #355 №2547431 
>>2547384
Для таких задач есть Дельфи. Скорость как в сях, но несоизмеримо проще и удобнее.
Аноним 20/12/22 Втр 17:49:43 #356 №2547537 
>>2547384
Так он тебе говорит либу искать (которая внутри скорее всего на си написана, просто интерфейс на питоне)
https://medium.com/casual-inference/the-most-time-efficient-ways-to-import-csv-data-in-python-cc159b44063d
А вообще проще на c++ писать, что то мне подсказывает что на голом си это будет боль.
Аноним 20/12/22 Втр 19:37:50 #357 №2547655 
https://youtu.be/wGCWlI4A5z4
Только что эта хуйня попалась в рекоммендациях и я очередной раз подумал, что сейчас мне обьяснят положняк. Ну не могут же люди высерать пустые и бессмысленные видео в огромных количествах, верно?
Итак, заходим...
>ряяяя я специально не учел условие и поэтому в программе появился баг, поэтому Си/Си++ говно
>ряя в Си++ есть 5 способов сделать одну и ту же вещь, поэтому мне сложно выбрать. Язык говно
>в расте есть синтаксический сахар, который делает за меня все то же самое, поэтому язык заебись
Охуенная аналитика, браво. И таких бесполезных видео просто миллиарды просто для того, чтобы пропихнуть культуру к которой они "причастны". Нет, чтобы снять видео как ты делаешь крутую штуку на расте, как членодевка из AsahiLinux. Это слишком сложно нахуй, будем распространять маркетинговый булщит. Из-за ебанутого cumюнити даже палкой эт поделие трогать не хочется. Как будто питонисты, джаваскриптеры и прочие макаки. Хотя почему "будто"? Основная ЦА и есть выходцы из веб-параши.
Держу в курсе
Аноним 20/12/22 Втр 19:58:58 #358 №2547681 
>>2495049 (OP)
Поясните что не так?

FILE* plain_text;

int columns = 0;
int strings = 0;
int metering = 0;
char c;

fopen_s(&plain_text, "C:\Users\anon\source\repos\Text_editor\Debug\c_programm.txt", "r");
Аноним 20/12/22 Втр 20:05:18 #359 №2547685 
123.png
>>2547681
Аноним 20/12/22 Втр 20:09:38 #360 №2547687 
image.png
>>2547685
>>2547681
https://learn.microsoft.com/ru-ru/cpp/c-runtime-library/reference/fopen-s-wfopen-s?view=msvc-170

Попробуй свой файл в примере открыть.
Аноним 20/12/22 Втр 20:25:18 #361 №2547697 
123.png
>>2547687
Да, спасибо, теперь прочитал файл, странно.
Аноним 20/12/22 Втр 21:28:18 #362 №2547774 
>>2547655
> посмотрел тупое видео, сделанное специально чтобы набрать больше просмотров
> искренне взбугуртнул
Ты же сам должен понимать для чего и для кого такое снимается
Аноним 21/12/22 Срд 02:03:31 #363 №2547959 
>>2547774
>Ты же сам должен понимать для чего и для кого такое снимается
Для него и снимается. Он посмотрел, получил эмоциональную реакцию, ещё и потащил по интернетам, чтобы другим показать.
Аноним 21/12/22 Срд 02:25:24 #364 №2547970 
>>2547959
>>2547774
Я просто считаю, что вы переоцениваете этих людей.
Даже на дваче встречаются такие персонажи при общении с которыми поначалу думаешь, что они троллят, но в конечном итоге оказывается , что они просто долбоебы.
Аноним 21/12/22 Срд 03:19:21 #365 №2547980 
>>2547697
Кстати путь до файла нужно указывать C:/ а не C:\
Аноним 21/12/22 Срд 03:41:33 #366 №2547983 
>>2547970
Не имеет значения, случайно автор этого ролика наткнулся на такой формат (просто долбоеб), или осознанно его придумал (троллит), факт остаётся фактом, анон выше
>посмотрел, получил эмоциональную реакцию, ещё и потащил по интернетам, чтобы другим показать.
То есть цель ролика достигнута — он распространяется, и просмотры капают. Значит обучение обучение с подкреплением произошло, и автор будет таких роликов снимать ещё больше.
Аноним 21/12/22 Срд 09:11:38 #367 №2548062 
>>2547983
Быдлосы любят скандалы, сам видел бабку, смотрит целый день телешоу с руганью и так 8/7/365 и не надоедает и не противно. Грязь это плоть и кровь грязного быдла, они в грязи живут, дышат грязью, едят грязь, и в голове одна грязь.
Литература по системному программированию Шиндовс. [mailto:bump] кот_волшебник 21/12/22 Срд 09:45:33 #368 №2548072 
изображение.png
изображение.png
изображение.png
Здравствуйте Anonchique.
Пишу на чистом Си, реквестирую хорошую литературу по системному программированию под Шиндовс, выложил список литературы по которой я практикуюсь, кого-то более лучшего чем Александра Побегайло и Павла Йосифовича не нашёл.
Если знаете более хороших авторов, или более современное издание, напишите пожалуйста.
Аноним 21/12/22 Срд 10:39:02 #369 №2548108 
>>2547980
Чел в Си-строке \ означает escape-символ.
Например \n означает перевод строки.
Для того чтобы в реальной строке в памяти был символ \
В исходном файле тебе надо писать \\
Т.е. "C:\\Path\\File"
Это буквально первые страницы любого учебника (параграф про литералы)
Вы по тик току учите что ли?
Аноним 21/12/22 Срд 11:20:38 #370 №2548128 
>>2548072
а есть похожее для линукса?
Аноним 21/12/22 Срд 11:20:52 #371 №2548129 
>>2548072
а есть похожее для линукса?
Аноним 21/12/22 Срд 11:27:29 #372 №2548135 
>>2548072
На чистом си под винду нельзя писать, там конец файла не \n, компилятор не ругается на крестовые констпукции и так далее. Только в юниксе си чистый.
Аноним 21/12/22 Срд 11:30:16 #373 №2548137 
>>2547983
Да нет, как раз имеет значение. Потому что ты исходишь из позиции, что вся эта срань изначально затевается ради простотров, что уже может быть не правдой. Я натыкался на множество статей, постов, видосов, где подобные вещи с серьезным лицом говорят без какого-либо троллинга. А для системного языка такое раковое сообщество не очень хорошо.
Ну и немного ебанутая позиция в духе "ты же посмотрел, значит все правильно делает". Можно говном на камеру измазаться и тоже много людей посмотрит, но это не значит, что ты сделал что-то хорошее.
Аноним 21/12/22 Срд 11:52:37 #374 №2548155 
Стикер
>>2548135
Аноним 21/12/22 Срд 11:57:04 #375 №2548156 
>>2547655
>обьяснят положняк
>видос про сраст, а не ламповый Zig
Ну анон, ты чего.
Аноним 21/12/22 Срд 12:04:34 #376 №2548163 
>>2548137
>Потому что ты исходишь из позиции, что вся эта срань изначально затевается ради простотров, что уже может быть не правдой.
Это ролик, выложенный на ютубе. Если не ради просмотров, то ради чего, по твоему мнению?


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

>Можно говном на камеру измазаться и тоже много людей посмотрит, но это не значит, что ты сделал что-то хорошее.
Что значит "сделал что-то хорошее"? Хорошее для кого? Для себя автор сделал очень хорошо — просмотры капают, известность растёт. Одни бонусы.
[mailto:bump] Аноним 21/12/22 Срд 13:23:40 #377 №2548260 
изображение.png
>>2548108
Да, тик-ток академия по программированию доктора Плюшевой.
[mailto:bump] Аноним 21/12/22 Срд 13:34:10 #378 №2548271 
>>2548135
>там конец файла не \n
О чём ты , чтение прекращается когда поток вывода передаёт нулевой байт, при чём тут переход на новую строку ?
[mailto:bump] Аноним 21/12/22 Срд 13:36:50 #379 №2548273 
изображение.png
>>2548129
Вот такое нашёл, тут для шиндоуса и для членикса книги.

https://vk.com/wall-51126445_112023
[mailto:bump] Аноним 21/12/22 Срд 13:40:44 #380 №2548277 
>>2542444
проиграл с мема XD ))))
[mailto:bump] Аноним 21/12/22 Срд 13:48:36 #381 №2548296 
изображение.png
>>2543560
Спроси его, сможет ли ИИ поработить человечество и к какому году, чтобы я успел подготовиться.
Аноним 24/12/22 Суб 20:53:54 #382 №2552576 
Бамп++
Аноним 26/12/22 Пнд 00:08:44 #383 №2553831 
from here.png
from where.png
Подскажите откуда эти символы в ЦМД? Они берутся рандомно из памяти почему-то.

Память выделяю динамически, потом считываю по букве в массив.
Аноним 26/12/22 Пнд 00:09:55 #384 №2553832 
>>2553831
На пиках хуета если что для примера текста.
Аноним 26/12/22 Пнд 00:21:40 #385 №2553841 
>>2553831
Потому что некорректно выводятся пустые строки, после \n.
До самого и дошло же.
Аноним 26/12/22 Пнд 00:22:23 #386 №2553842 
>>2553831
М.б. потому что Active Page в 1251 кодировке, а твой текстовый файл сохранен в UTF8 ?

Попробуй добавить в начале main:

SetConsoleCP(65001);
SetConsoleOutputCP(65001);
Аноним 26/12/22 Пнд 00:40:27 #387 №2553853 
изображение.png
>>2553831
Мне кажется лучше использовать API операционной системы для задач ввода-вывода, чтения данных и т.д., т.к. стандартные функции предоставляемые в Си (как например из <stdio.h> вроде scanf) небезопасны, с ними не удобно работать (особенно с различными кодировками).

Для чтения записи файлов, можно использовать ReadFile и WriteFile.

http://vsokovikov.narod.ru/New_MSDN_API/Menage_files/fn_readfile.htm

http://vsokovikov.narod.ru/New_MSDN_API/Menage_files/fn_writefile.htm
Аноним 26/12/22 Пнд 01:39:25 #388 №2553876 
>>2553853
как ты думаешь, няша, что внутри scanf?
Аноним 26/12/22 Пнд 01:52:25 #389 №2553883 
>>2553876
Ассемблер
Говно говна там, если хочешь сегфолтами обмазаться или иметь потенциально уязвимый код, используй на здоровье scanf.

я тебе не няша
Аноним 26/12/22 Пнд 01:52:51 #390 №2553885 
Есть какие-то годные реплы или интерпретаторы, чтобы баловаться без конпеляции?
Аноним 26/12/22 Пнд 01:56:21 #391 №2553887 
изображение.png
>>2553885
>Есть какие-то годные реплы или интерпретаторы, чтобы баловаться без конпеляции?

Да, есть:
https://habr.com/ru/sandbox/54131/
Аноним 26/12/22 Пнд 01:58:02 #392 №2553888 
>>2553876
есть же scanf_s.
Аноним 26/12/22 Пнд 01:59:38 #393 №2553889 
>>2553888
Тоже говно говна, и кстати ты можешь указать размер буфера в scanf после знака %, лучше использовать предоставляемое API.
Аноним 26/12/22 Пнд 02:03:12 #394 №2553890 
>>2553888
Лучше использовать метод winapi ReadConsole либо ReadConsoleW (в качестве минимального буфера указать 256 символов, т.к. это минимальный лимит ввода, но ты можешь его увеличить увеличив размер буфера в n-раз кратного 256).
Аноним 26/12/22 Пнд 02:23:01 #395 №2553891 
>>2530019
А хрен ли ты хотел, это числа, в Си нет типа string, за то есть минимальный тип char размером 1 байт, как раз для работы с ASCII, и массивы, которые являются указателями.
Аноним 26/12/22 Пнд 06:35:46 #396 №2553938 
>>2553889
>>2553890
А если я под линух пишу, то как тогда безопаснее сделать?
Аноним 26/12/22 Пнд 09:52:40 #397 №2554022 
>>2553890
>Лучше использовать метод winapi
Лучше никогда не использовать какие то мутные расширения, которых нет в стандарте языка Си.
Аноним 26/12/22 Пнд 10:07:30 #398 №2554027 
>>2554022
Тише, щас же прибежит сегфолтошиз и начнет затирать про уб до кучи.
Аноним 26/12/22 Пнд 11:16:17 #399 №2554063 
>>2554022
Стоит, если от этого код станет быстрее
Аноним 26/12/22 Пнд 11:31:27 #400 №2554080 
>>2553891
>char размером 1 байт
Не обязательно
Аноним 26/12/22 Пнд 11:36:07 #401 №2554085 
>>2554063
Код, работающий со скоростью 0 (не работающий на другой платформе) не может быть быстрее.
Аноним 26/12/22 Пнд 11:39:47 #402 №2554089 
1531712256993.png
1632478094533.png
>>2554080
В C99 sizeof(char) == 1. Результат измеряется в байтах.

CHAR_BIT может быть больше или равен 8 битам, но это другое. Не путай.
Аноним 26/12/22 Пнд 12:14:15 #403 №2554131 
>>2554085
Может, просто для каждой платформы пиши нативные реализации
Аноним 26/12/22 Пнд 13:13:17 #404 №2554216 
index.jpg
>>2548129
Аноним 26/12/22 Пнд 14:43:52 #405 №2554339 
>>2554131
На пердопараше нет натива, вот эти чуханы везде лезут и воняют своей "мультиплатформенностью", которая означает усредненное говно которое везде работает как говно. Говнари обмазываются говном, как будто что-то новое.
Аноним 26/12/22 Пнд 15:55:02 #406 №2554488 
>>2554063
Если у тебя программа упирается по скорости в вывод в консоль, то с ней у тебя куда большие проблемы. Попробуй писать в файл, попробуй бинарные данные вместо текстовых, попробуй слать только дельту изменений.
Аноним 26/12/22 Пнд 15:57:26 #407 №2554492 
1666186663320.png
>>2554339
>На пердопараше
>эти чуханы везде лезут и воняют своей "мультиплатформенностью", которая означает усредненное говно которое везде работает как говно.
>Говнари обмазываются говном, как будто что-то новое.
Двачую.
Аноним 26/12/22 Пнд 16:23:58 #408 №2554522 
>>2554492
Типичный пердодебил, даже не понимает смысл своего выпука, то есть нет смысла.
Аноним 26/12/22 Пнд 17:37:20 #409 №2554605 
>>2554522
Пердодебилы такие, да. Даю подсказку - программа, написанная по стандарту, более переносима между разными линуксами, чем программа, написаная под разные версии пердошинды.
Аноним 26/12/22 Пнд 18:07:59 #410 №2554639 
2077EA474D0EEAD807.jpeg
>>2554089
На первом пике не стандарт, а какая-то хрень. Сайзоф выдает размер в чарах, а не байтах. На пикрелейтед например (это тмс) размер Инта - 2.
Аноним 26/12/22 Пнд 18:08:35 #411 №2554642 
>>2554639
Лонг Инта*
Аноним 26/12/22 Пнд 18:53:09 #412 №2554702 
>>2554488
Но это же не только к консоли относится
Все низкоуровневое в целом
Аноним 26/12/22 Пнд 18:58:56 #413 №2554707 
изображение.png
>>2554022
>Лучше никогда не использовать какие то мутные расширения, которых нет в стандарте языка Си.

Что, правда ты СКОЗАЛ ?
Какие расширения дебилоид ?
Быдло, ты когда-нибудь писал код не на питухоне, гейшарпах и для энтерпрайза, а не для своего студенческого мини-проекта ?
Ты вообще писал что-то на Си кроме "hello world", я в этом очень сомневаюсь.))

>>2554027
>Тише, щас же прибежит сегфолтошиз
Ди нах даун, боюсь представить что будет если тебе доверят писать ПО для авионики, или запрограммировать робота-хирурга, когда ты начнёшь хуярить свой говнокод потому что так СКОЗАЛ индус с ютуба, ведь все вокруг тупые шизы и зануды))))
Аноним 26/12/22 Пнд 20:40:20 #414 №2554813 
1335559373731.jpg
>>2553891
Что есть байт?
Аноним 26/12/22 Пнд 20:41:24 #415 №2554814 
>>2554646
Ассемблер MIPS.
Аноним 26/12/22 Пнд 22:27:45 #416 №2554944 
Чуваки я ньюбас, наткнулся на заголовок видео в котором говорится что джава создана из-за багов указателей в си. Че за баги и есть ли они по прежнему?
Аноним 26/12/22 Пнд 22:31:24 #417 №2554946 
>>2554944
Разве не по древнему плану рептилоидов?
Аноним 26/12/22 Пнд 23:51:44 #418 №2555008 
>>2554944
Имеется в виду, что с указателями легко сделать баги. Берешь указатель на что-то и прибавляешь 100500 - вот он уже указывает в адрес возврата на стеке. Или освождаешь память, а указатель на нее забыл сбросить.
Аноним 27/12/22 Втр 06:15:33 #419 №2555132 
>>2504453
Так вы без нас не можете нихуя, лол, девелоперы вы мамкины, джава-победители
Аноним 27/12/22 Втр 06:23:29 #420 №2555133 
>>2528505
так если ты только заведомо валидные данные в функцию передаёшь, это не уб, а если нет, ты долбоёб, или ещё не нашёл ошибку, очевидно
Аноним 27/12/22 Втр 07:32:06 #421 №2555139 
>>2554707
> боюсь представить что будет если тебе доверят писать ПО для авионики
Ох, чел, я уже...
Соболезную хуле, старайся тогда не летать рейсами грузовых самолетов, че поделать. Свои мокрописьки оставь при себе пожалуйста и не тащи свой кал в тредис.
Аноним 27/12/22 Втр 12:29:59 #422 №2555291 
1612084734058.png
1535708391303.png
>>2554639
>На первом пике не стандарт, а какая-то хрень
Самый настоящий стандарт. Скачай сам и открой.
>Сайзоф выдает размер в чарах, а не байтах
Сайзоф выдает в байтах.
> На пикрелейтед например (это тмс) размер Инта - 2.
На твоем пикриле нет никакого "2" и ниаких байт, только биты.
Я же сказал - не путай. Размер char = 1 байт.
А вот байт по стандарту может быть разного размера в битах. Но минимум 8. Поэтому там и написано что int минимум 16 бит.
Аноним 27/12/22 Втр 12:31:43 #423 №2555298 
>>2554707
>Ты вообще писал что-то на Си
На си я не пишу по причине того что это убогий язык, а на C++ писал серьезный софт когда тебя еще в планах не было.
> боюсь представить что будет если тебе доверят писать ПО для авионики, или запрограммировать робота-хирурга
Боюсь представить, что будет, если кому-то придет в голову писать такой софт под шинду.
Аноним 27/12/22 Втр 12:34:18 #424 №2555302 
>>2554944
Баги в софте есть всегда. Вся разница в том, что в Си у тебя будет креш с сегфолтом, или тихая порча памяти и данных, а в джаве - креш с NullPointerException, или креш с ArrayIndexOutOfRange
Аноним 27/12/22 Втр 15:56:26 #425 №2555525 
skull.jpg
>>2555298
>На си я не пишу по причине того что это убогий язык
Потому что ты понятия не имеешь на сколько крут этот язык, и какими возможностями он обладает как например возможность создавать PIC код (код не зависящий от адреса).
Можешь писать и дальше свой индусский код на своих гейских крестах, не забудь вернуться в свой опенспейс и допить свой детокс-смузи, а потом сделать селфи со своим HRBP, и подвороты опусти, на улице холодно, зима.
Аноним 27/12/22 Втр 16:52:31 #426 №2555574 
>>2555525
Да погоди, может он просто на Си с классами пишет.
Аноним 27/12/22 Втр 17:03:45 #427 №2555594 
>>2555574
Все про крестовики пишут на си с классами так то.
Аноним 27/12/22 Втр 17:40:22 #428 №2555621 
>>2555525
Будто бы в c++ нет -fPIC.
Ожидаемый уровень экспертизы для двачера.
Аноним 27/12/22 Втр 17:43:58 #429 №2555623 
>>2555008
>легко сделать баги
>освождаешь память, а указатель на нее забыл сбросить
И где тут баг? Освобождение памяти не требует никаких сбросов указателей.
Аноним 27/12/22 Втр 17:50:33 #430 №2555629 
>>2555623
>И где тут баг
Трудноуловимое reuse-after-free: https://developer.android.com/ndk/guides/gwp-asan#example

Не ломай над этим голову. По-видимому, оно лечится только полным отказом от указателей (т.е. заменой их на дескрипторы объектов), по крайней мере, я другого решения не нашёл.
Аноним 27/12/22 Втр 17:50:55 #431 №2555630 
>>2555623
>И где тут баг
Трудноуловимое reuse-after-free: https://developer.android.com/ndk/guides/gwp-asan#example

Не ломай над этим голову. По-видимому, оно лечится только полным отказом от указателей (т.е. заменой их на дескрипторы объектов), по крайней мере, я другого решения не нашёл.
Аноним 27/12/22 Втр 17:57:34 #432 №2555637 
изображение.png
>>2555621
Аноним 27/12/22 Втр 18:00:21 #433 №2555641 
>>2555574
>>2555594
>>2555637
Аноним 27/12/22 Втр 18:00:37 #434 №2555643 
>>2555637
Ещё такое есть:
C makes it easy to shoot yourself in the foot; C++ makes it harder, but when you do, it blows away your whole leg. – Bjarne Stroustrup
Аноним 27/12/22 Втр 18:02:33 #435 №2555649 
изображение.png
>>2555643
Апхахах))
Аноним 27/12/22 Втр 18:09:23 #436 №2555661 
>>2555623
>Освобождение памяти не требует никаких сбросов указателей.
Освобождение не требует сброса, а вот контроль, чтобы не использовать после удаления - требует.
Аноним 27/12/22 Втр 18:16:35 #437 №2555672 
>>2555661
Не требует. В отладочной сборке оно само обнуляется для отладки, а в релизной это бесполезный блоат убивающий производительность.
Аноним 27/12/22 Втр 21:48:20 #438 №2555882 
>>2555672
Ты, очевидно, попутал c заполнением памяти нулями
(впрочем, если не на голом железе, то современная ОС все равно это делает для безопасности, например https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=6471384af2a6530696fc0203bafe4de41a23c9ef
а речь шла про "сброс указателей", т.е. про конструкцию
if(ptr != null) {
free(ptr);
ptr = null;
}
Что помогает при использовании контролировать, что указатель валидный
if(ptr==null) raise_error(); else foo(ptr);
Аноним 28/12/22 Срд 02:57:08 #439 №2556002 
Друзья ромогите нубу.
Хочу читать текстовый файл в массив флоатов, выбрасывая пробелы, мусор и с переносом строк.
из без сппшных стринг вектор и тд, только си
Аноним 28/12/22 Срд 03:31:38 #440 №2556011 
>>2555882
Эта конструкция помогает говнокодить, потому что повторное освобождение указателя это баг, а она его подавляет. Надо лечить болезнь, а не симптомы, исправлять баги, а не обходить их. Условие не нужно, надо чтобы надежно крашнулось по известному значению, и лучше это будет не ноль, чтобы отличить обращение к неинициализированному указателю от использованого, но освобожденного.
Аноним 28/12/22 Срд 06:39:33 #441 №2556032 
>>2556011
Надеюсь, что ты просто троллишь тут новичков, засирая им мозги, а не говнокодишь таким образом реальные программы.
> она его подавляет.
Не подавляет, шиз.
А вот незануление, как раз, подавляет. Ты даже не будешь знать что ты юзаешь афтер фри. У тебя просто какой то указатель, ну и что что ты попортишь чужую память и данные.
>надо чтобы надежно крашнулось
Как там в 70-х? Надо чтобы корректно завершилось, сохранило все пользовательские данные, вывело корректную подробную ошибку.
> отличить обращение к неинициализированному указателю от использованого
Охуеть блядь кодинг на кончике пальцев. Если ты попал в это условие, то иди вилкой чисти, у тебя скорее всего и там и там лажа.
Аноним 28/12/22 Срд 07:35:33 #442 №2556047 
>>2555882
>if(ptr != null) {
>free(ptr);
Бесполезная конструкция, фри сама проверяет на нулпоинтер по стандарту. Тоже самое в крестах с делит.
Аноним 28/12/22 Срд 07:42:03 #443 №2556049 
>>2556047
Это правда, ну там имеется в виду
if(ptr == NULL)
raise_error("trying to double free");
free(ptr);
ptr = NULL;
Аноним 28/12/22 Срд 10:25:44 #444 №2556106 
>>2556002
Не знаю, что у тебя там за задача, но первое что пришло в голову это сначала запилить функцию, которая считает количество байт в файле, на основе этого количества выделяет память (юзаем вместо массива) при помощи malloc(), далее открываешь файл при помощи fopen(), в цикле (обычно while юзают) считываешь символы в массив при помощи fgetc(), пропуская пробелы и мусор, закрываешь файл, юзаешь free()
Аноним 28/12/22 Срд 12:27:31 #445 №2556158 
>>2556106
Да я понядеялся на анона, но запотел и уже сам сделал.
на чистых сях никогда не писал, от того и слажна, а вот тут пришлось
Аноним 28/12/22 Срд 12:36:44 #446 №2556168 
>>2556158
покеж что накодил, если не секрет
Аноним 28/12/22 Срд 14:13:08 #447 №2556267 
>>2556168
Нейронка, спок.
Аноним 28/12/22 Срд 15:11:38 #448 №2556324 
>>2556002
https://en.cppreference.com/w/c/io/fscanf
Аноним 28/12/22 Срд 18:39:49 #449 №2556551 
>>2556324
нахуй ->
>>2556168
Даже я, человек очень далекий от сей, смог, пущай анон пошевелит извилинами.
реалок
Аноним 29/12/22 Чтв 13:08:33 #450 №2557183 
>>2495049 (OP)
Почему не CLion ? Какие-то подводные камни у этой IDE?
Аноним 29/12/22 Чтв 13:23:08 #451 №2557192 DELETED
>>2557183
Тормознутое говно за деньги
Аноним 29/12/22 Чтв 14:20:57 #452 №2557232 
>>2557192
Бесплатное же ломается 2 строчками в конфиге и заменой одного жава файла
Медленнее кодиума и креатора, это да.
Зато рефакторинг и парсинг нормальный.
В общем кому что.
Аноним 29/12/22 Чтв 16:48:19 #453 №2557384 
>>2557183
>жаба-дрисня
>какие подводные
Никаких, там воды нет.
Аноним 29/12/22 Чтв 20:53:18 #454 №2557646 
>>2554813
Слава Украине!
Аноним 29/12/22 Чтв 22:17:38 #455 №2557710 
>>2557384
Только одни камни ?
Печально.
Аноним 29/12/22 Чтв 22:58:13 #456 №2557740 
>>2557183
Почему не Emacs?
Аноним 29/12/22 Чтв 23:02:46 #457 №2557745 
>>2557740
Потому что однопоток
Аноним 30/12/22 Птн 02:49:56 #458 №2557816 
>>2557745
Уже нет почти
Аноним 30/12/22 Птн 04:19:55 #459 №2557828 DELETED
>>2557232
>Зато рефакторинг
На макросах соснет. Рефактрить нужно ручками, говноидее только все поломают.
Аноним 01/01/23 Вск 15:30:00 #460 №2560008 
image.png
Сап, есть такая функция для заполнения двумерного массива слов. Как сделать так, чтобы с клавиатуры был ввод предложения?
Аноним 01/01/23 Вск 15:49:04 #461 №2560013 DELETED
>>2560008
scanf()
Аноним 01/01/23 Вск 15:50:35 #462 №2560014 
>>2560013
А как это написать? Не понимаю нихуя...
Нужно ввести с клавиатуры предложение и чтобы оно разбилось по словам в двумерный массив
Аноним 01/01/23 Вск 17:56:16 #463 №2560197 
>>2560014
Бро, даже не пытайся научиться программированию до тех пор, пока не научишься гуглить вместо того, чтобы просить советов на дваче.
Аноним 01/01/23 Вск 19:09:21 #464 №2560285 
>>2495049 (OP)
а зочем си кгда есть модный молодежный гоу аноны?
Аноним 01/01/23 Вск 19:56:28 #465 №2560326 
>>2560285
Гарбэдж коллектор все руинит
Аноним 01/01/23 Вск 22:09:40 #466 №2560433 
>>2560008
Laba11.c
Аноним 02/01/23 Пнд 00:01:00 #467 №2560507 
>>2560197
Он и не пытается, это хуесос который хочет чтобы за него сделали домашку.
Сейчас за него сделают домашку, потом будет делать за него работу. Так и живут, хитрожопое быдло.
Аноним 02/01/23 Пнд 12:03:05 #468 №2560730 
>>2560507
Анальники все такие душнилы? В чём проблема молча помочь, если знаешь и сидишь в треде? eastern-менталитет
Аноним 02/01/23 Пнд 12:44:47 #469 №2560761 
>>2560730
Ну так и спрашивай у обладателей western менталитет, хуле ты сюда припёрся то?
Аноним 02/01/23 Пнд 13:05:35 #470 №2560790 
>>2560730
Видишь ли, это Си тред, и я не хочу потом уебаться в машине контроллер которой программировал недоучка.
Аноним 02/01/23 Пнд 13:44:30 #471 №2560817 
>>2560730
Тебе помогли советом открыть гугл и списать оттуда свой хеллоу ворлд. Пока ты этого не сделаешь - нихуя у тебя не выйдет.
Аноним 03/01/23 Втр 11:53:54 #472 №2561565 
>>2560730
>eastern-менталитет
Ты про себя, лол? Мы тут за western-менталитет топим, поэтому деньги вперед. Ну сам понимаешь, капитализм, срыночек, все дела.
Аноним 04/01/23 Срд 12:11:14 #473 №2562483 
Пишу в Visual Studio на C++ в стиле Си числовые алгоритмы для криптографии. Как покрыть этот код тестами? Какие фреймворки для этого есть типа junit, jassert в джаве?
Аноним 04/01/23 Срд 12:51:32 #474 №2562508 
>>2562483
Я Гугл тест использую, удобно в симейк подключать
Есть ещё и другие, буст тест, catch2

Ну это все плюсовые решения, может какие то есть которые на си
Аноним 04/01/23 Срд 15:25:10 #475 №2562709 DELETED
>>2562483
>Как покрыть этот код тестами?
Паралельно сам пишешь, какие проблемы? На хуй тебе все покрывать, если достаточно основной функционал, там хоть на баше.
Аноним 04/01/23 Срд 16:19:15 #476 №2562753 
>>2562483
> Пишу в Visual Studio на C++ в стиле Си числовые алгоритмы для криптографии. Как покрыть этот код тестами?
Берешь wycheproof, например, грузишь евонные случаи libjansson и прогоняешь. Не думай обойтись случайным тестированием.
Аноним 04/01/23 Срд 23:33:55 #477 №2563287 
>>2495049 (OP)
Возможно глупый вопрос, но я все же спрошу.
Какие профиты в изучении C сейчас? Есть ли смысл изучать сначала C, а потом уже переходить на С++ и другие Си-подобные языки?

Или лучше не тратить время и учить C#? а потом с него перекатываться куда интересно, на тот же С
Аноним 04/01/23 Срд 23:52:28 #478 №2563306 
>>2562483
Хз. я вообще на Си пишу с использованием gcc и сторонними отладчиками вроде gdb, нашёл вот такую статью от майков.

https://learn.microsoft.com/ru-ru/visualstudio/test/writing-unit-tests-for-c-cpp?view=vs-2022

А вообще, как ни странно, у майков очень удобная и весьма понятная техническая документация.
Аноним 04/01/23 Срд 23:56:39 #479 №2563311 DELETED
>>2563287
>Есть ли смысл изучать сначала C, а потом уже переходить на С++ и другие Си-подобные языки?
В этих языках разные парадигмы, Страуструпа на пример бонбит если кресты считают надстройкой над С. Но лучше наверное с крестов, ООП параша сейчас в любом модном языке.
Аноним 05/01/23 Чтв 00:09:46 #480 №2563328 
>>2560013
scanf() нельзя использовать, он не безопасен!!!!

Для чтения буфера консоли, используй широкие символы для записи юникода (wchar_t или short unsigned int) и метод WinAPI - ReadConsoleW, а также не забудь указать для записи своего массива буфер не меньше 256, потому что это минимальное ограничение для консоли, больше которого пользователь не сможет ввести (если не задаст размер буфера в n-раз кратным 256), также не забудь указать режим преобразования выходного потока в Юникоде через _setmode(_fileno(stdout), _O_WTEXT);.

Либо, если не желаешь возиться с WinAPI можешь использовать getwchar, а для преобразования строк в числа существуют методы atoi, _atoi_l, _wtoi, _wtoi_l.
Аноним 05/01/23 Чтв 00:11:13 #481 №2563329 DELETED
>>2563328
>и метод WinAPI - ReadConsoleW
Сразу на хуй
Мимо
Аноним 05/01/23 Чтв 00:13:11 #482 №2563330 
>>2563329
Сам иди на хуй!

Обосновать можешь то что написал, или как быдло можешь только хуями покрывать без контраргументов и конструктивной критики ?
Аноним 05/01/23 Чтв 00:17:56 #483 №2563333 DELETED
>>2563330
Ну если пихать в код WinAPI говно для тебя норма, то какие тебе аргументы нужны, школьник?
Аноним 05/01/23 Чтв 00:24:07 #484 №2563338 
изображение.png
>>2563333
Даун, причем тут твой говнокод, это системные высокоуровневые методы операционной системы, без которых ты не сможешь написать ничего сложнее "hello world", даун ты тупой!

Ты в курсе что даже в вузах, помимо базовых основ вроде устройства операционных систем дают лабы по написанию программ с использованием WinAPI, или тебя в твоём сельском ПТУ кроме 1С ничему не научили ?
Аноним 05/01/23 Чтв 00:26:27 #485 №2563340 
изображение.png
>>2563333
Мне кажется ты тредом ошибся, ты перепутал с просто C.
Аноним 05/01/23 Чтв 00:30:13 #486 №2563349 DELETED
>>2563340
>>2563338
Школьник, уходи.
Аноним 05/01/23 Чтв 00:35:23 #487 №2563352 
изображение.png
>>2563349
Сам уходи, додик тупой, я от тебя так и не услышал никакой конструктивной критики или каких либо разумных контраргументов кроме
>ряяяяяяяя ета гавно яскозал гавно ряяяя

Всё чему ты научился, это сидеть на дваче и оскорблять других пользователей, зная что тебе за это ничего не будет, ебанный неосилятор))))
Аноним 05/01/23 Чтв 05:35:09 #488 №2563428 
>>2563352
А когда си увидел сначала, очень порадовался его крутизне, но когда начал писать программы, эти генерик интерфейсы из говна типа консольного ввода-вывода такие убогие, всё равно что руки связали, а потом отрубили. Фублять, фунахуй, без нативных средств программирования не бывает, только теоретическая математика какая-нибудь, абстрактный бесполезный кал.
Аноним 05/01/23 Чтв 08:22:31 #489 №2563450 
1672896151247.jpg
> метод WinAPI - ReadConsoleW
Аноним 05/01/23 Чтв 09:36:09 #490 №2563480 
>>2563428
Да он и не нужен в большинстве прог. Если тулза для пользователя, там нужен гуй, если для сисадмина - ему нужны нормальные логи. Если уж совсем надо - то есть обертки над ncurses и альтернативы.
Единственное где это можно оправдать - микроконтроллеры которые надо отлаживать по проводу.
Аноним 05/01/23 Чтв 10:46:40 #491 №2563495 
>>2563450
Чо в гугле было, то и вбил. Хули ты как нубяра, не знаешь, как взрослые дяди работают?
Аноним 05/01/23 Чтв 12:30:28 #492 №2563551 
>>2563450
Слишком жирно будет если я в линукс тред с этой хуйней пойду?
Аноним 05/01/23 Чтв 13:22:17 #493 №2563604 
dfdf.png
поставил последний emsripten (чисто сам проекты компилит нормально), сделал минимальную прогу с SDL2, ни в какую не хочет дружить со мной
Аноним 05/01/23 Чтв 13:35:29 #494 №2563617 DELETED
>>2563604
> сделал минимальную прогу с SDL2
Путь к либе прописал?
Аноним 05/01/23 Чтв 14:10:06 #495 №2563663 
>>2563617
он же сам ее скачивает, распаковывает и компилит, куда прописывать?
Аноним 05/01/23 Чтв 14:24:32 #496 №2563687 DELETED
>>2563663
>куда прописывать
В свой проект
Аноним 05/01/23 Чтв 15:04:45 #497 №2563726 
em1.png
em2.png
>>2563687
ну вот первый пик проект
второй - батник для сборки

типа мне еще флаги вроде -lmingw32 -lSDL2main -lSDL2 и тому подобные дописывать?
тогда почему у них тут все собирается без них
https://www.jamesfmackenzie.com/2019/12/01/webassembly-graphics-with-sdl/
Аноним 05/01/23 Чтв 15:14:48 #498 №2563731 DELETED
>>2563726
>типа мне еще флаги вроде -lmingw32 -lSDL2main -lSDL2 и тому подобные дописывать?
Конечно
Аноним 05/01/23 Чтв 15:24:16 #499 №2563744 
>>2563726
А без emscripten-хуйни нельзя?
Аноним 05/01/23 Чтв 15:45:41 #500 №2563774 
>>2563731
так тогда почему у них в примерах оно само подхватывается? это же вроде как раз в флаге USE_SDL2 и предусмотрено
судя по ошибке же он из уже распакованного пакета не может собрать libSDL и говорит, что не видит его
Аноним 05/01/23 Чтв 15:46:08 #501 №2563775 
>>2563744
как я тебе без этой хуйни на сайт выложу
Аноним 05/01/23 Чтв 15:55:48 #502 №2563792 
>>2563775
Да вроде с помощью llvm можно в васм скомпилить. Не хочется просто всякое говно устанавливать себе.
Аноним 05/01/23 Чтв 16:32:19 #503 №2563843 
>>2563792
так у тебя как клиента на выходе и будет итоговый wasm в обоих случая, какая разница чем разраб пользовался
Аноним 05/01/23 Чтв 23:41:14 #504 №2564314 
>>2495049 (OP)
Какая IDE для Си идеально подойдет под макось?
поделия от майкрософта не предлагать
Аноним 06/01/23 Птн 07:14:28 #505 №2564426 
>>2564314
сублиме техт + гсс
Аноним 06/01/23 Птн 07:44:06 #506 №2564429 
>>2564314
ну для таких фанатичных смузихлебов есть atom
Аноним 06/01/23 Птн 11:53:34 #507 №2564550 
>>2564426
>>2564429
Прискорбно признавать, но вскодиум лучше.
Аноним 06/01/23 Птн 12:37:32 #508 №2564599 
>>2564550
ты же сказал не от майков
Аноним 06/01/23 Птн 13:09:45 #509 №2564621 
>>2564550
да, но он комп грузит сильно.
Аноним 06/01/23 Птн 18:40:53 #510 №2564924 
image.png
Помогите вкатышу, правильно ли я понимаю, что в конце проги мне нужно будет написать цикл с free(string) чтобы освободить память?
Аноним 06/01/23 Птн 18:43:59 #511 №2564925 
>>2564924
И что будет если адрес выделенный маллоком потеряется? Какими утилитами его потом находить и освобождать в таком случае?
Аноним 06/01/23 Птн 18:48:02 #512 №2564932 
>>2564925
Операционная система должна почистить.
Аноним 06/01/23 Птн 18:49:13 #513 №2564937 
>>2564932
при ребуте?
Аноним 06/01/23 Птн 19:01:53 #514 №2564953 
>>2564937
Нет, при завершении процесса. Это в любом случае надо для безопасности (чтобы хакиры ее не прочитали потом)
https://stackoverflow.com/questions/5612095/is-freeing-allocated-memory-needed-when-exiting-a-program-in-c
Но конечно освобождать память за собой надо, потому что это тебя убережет от багов.
Что же касается утилит, то пишут Valgrind. Либо написать свою обертку malloc (так же в c++ пишут обертки new/delete)
https://stackoverflow.com/questions/9074229/detecting-memory-leaks-in-c-programs
Аноним 06/01/23 Птн 19:04:25 #515 №2564956 
>>2564953
Спасибо за ответ понял
Аноним 06/01/23 Птн 21:03:11 #516 №2565089 
>>2564953
>Нет, при завершении процесса.
В основном система чистит, но не всё, кое что остается, поэтому чистить надо всё не ища оправданий чтобы не чистить. Но свиномакаки привыкли срать совсем не обращая внимания, такие в в сях только насрут и обосрутся. Си не для быдла.
Аноним 06/01/23 Птн 21:28:07 #517 №2565112 
>>2563287
>Какие профиты
Because it's beautiful.
Аноним 06/01/23 Птн 22:47:00 #518 №2565180 
>>2565089
>не всё, кое что остается
Например?
Аноним 07/01/23 Суб 10:02:00 #519 №2565430 
>>2565180
Семафоры, временные файлы - все, что выходит за пределы процесса.

Мимо
Аноним 07/01/23 Суб 11:49:57 #520 №2565484 
1548309150950.png
>>2565430
Причем тут временные файлы? free() не удаляет файлы.
Насчет семафоров тоже сомневаюсь.
Аноним 07/01/23 Суб 15:08:02 #521 №2565696 
Снимок экрана от 2023-01-07 15-04-58.png
часто слышу что по указателю можно как-то хакнуть программу. Пикрил небезопасный, или как её хакают?
Аноним 07/01/23 Суб 18:45:18 #522 №2565915 
>>2565696
Поясни, почему.
Аноним 07/01/23 Суб 20:18:09 #523 №2566010 
>>2565696
Самое распространенное что приходит в голову
1. Use after free.
ptr = mysupersecretpassword();
login_with_password(ptr);
free(ptr);

Но допустим enter_pwd куда-то сохраняло временно указатель...
tmp_ptr = ptr;
Если хакир сможет его прочитать, он сможет прочитать твой пароль, хотя ты думаешь что он удален.

2. Buffer overrun/overflow
char string[80];
char ptr = string;
while(
ptr++ = getch());
Но что если хакир не остановится и введет больше 80 символов; тогда они перезапишут какую-то часть стека, и он сможет ввести так прямо машинные коды, который исполнится. Сейчас конечно от этого добавили защит, но все равно это проблема.
Аноним 08/01/23 Вск 17:21:37 #524 №2566718 
а как скачать <graphics.h>
Аноним 08/01/23 Вск 22:21:19 #525 №2566998 
>>2565696
1)Чувак,это пиздец кринж, нахуй ты 2 раза память выделяшь?
2)Пикрил полностью безопасный, после работы с памятью можно для безопасности забивать эту область памяти хуйней, например нулями функцией memset, главное в конце очищать память, чтобы система не рухнула
Аноним 08/01/23 Вск 22:29:56 #526 №2567011 
>>2563328
scanf можно юзать, если знать, что scanf("%ns", hiy), ограничивает кол-во символов на входе и не даёт совершить переполнение, ну или использовать fgets, тоже с ограничением.
А так в си пиздец с ёбанным wchar, просто кринж
Аноним 08/01/23 Вск 23:31:32 #527 №2567106 
>>2567011
scanf_s в стандарте C11 уже 12 лет...
Аноним 09/01/23 Пнд 00:34:47 #528 №2567189 
>>2495049 (OP)
https://godbolt.org/z/d9hdYKr8o
Почему этот код выдает сег фолт?
Я всего лишь хочу заполнить массив размером 4n четыремя копиями массива размером n
Аноним 09/01/23 Пнд 05:59:58 #529 №2567280 
>>2567189
На первый взгяд, в memcpy(AR2 + offset, AR1, sizeof), использовать без амперсанда. Не факт, что твой компилятор адекватно это переваривает(с лишним амперсандом), но в гадболте зеленая галочка, следовательно он это скомпилировал, попробуй убрать &, если не поможет, то семантика
Аноним 09/01/23 Пнд 09:33:30 #530 №2567368 
>>2567189
Мудило с варнингами, ты опять вышел на связь?
Аноним 09/01/23 Пнд 10:19:31 #531 №2567417 
>>2567280
Ок, убрал операнд, вставил в sizeof сам массив, сегфолта больше нет, но заполняется только одна четверть массива, а тут почему?
https://godbolt.org/z/afdxsfex9
Аноним 09/01/23 Пнд 10:58:02 #532 №2567454 
>>2567417
может потому что ar1 в четыре раза меньше ar2 ?
Аноним 09/01/23 Пнд 11:50:42 #533 №2567510 
>>2567454
Ну а офсет то в цикле увеличивается, каждый раз на размер ar1, 4 итерации должны по идее покрыть все четыре четверти ar2.
Аноним 09/01/23 Пнд 12:59:05 #534 №2567596 
Хочу прошить ардуинку программой на ассемблере для avr. Поставил себе на винду убунту через WSL, установил тулчейн для avr и avrdude. А как в виртуализированном линуксе определить порт, к которому подключена ардуинка, чтобы указать его avrdude?
Аноним 09/01/23 Пнд 13:52:55 #535 №2567682 
>>2567596
И зачем ты так запердолился, если есть виндовый AVR Studio.
Аноним 09/01/23 Пнд 15:46:46 #536 №2567827 
>>2567510
Оффсет не нужно на размер int'а умножать. Это индекс, а не количество байтов.
Аноним 09/01/23 Пнд 19:25:42 #537 №2568091 
давно не лазил в эту тему, а как сыграть ноту? Чтобы просто частота и длительность хотя бы, в winapi было такое beep()
А как сейчас с этим обстоит дело?
Есть какой-то кроссплатформенный вариант без жирных либ?
За это дело вообще кто отвечает, драйвер звуковухи?
Аноним 10/01/23 Втр 22:42:52 #538 №2569617 
>>2568091
Это пойдёт?
https://vroby.ddns.net/Public/sdlBasic/MinGW/sorgenti/audacity/audacity-src-1.2.2/lib-src/portaudio/docs/pa_tutorial.html
кот_волшебник 11/01/23 Срд 03:31:25 #539 №2569791 
изображение.png
>>2567106
>>2567011
Что правда ?
Я ведь такой наивный, читаю техническую литературу по системному программированию и документацию, никогда не знал что туда можно передать параметр размера буфера, а на дваче мне открыли глаза, надо же...

Минус этого метода не только в буфере, а в том что чтение символов, заканчивается после того как передается пробел, да конечно, можно указать что-то вроде scanf("%5s %d", buf1, &varint), но это не очень удобно, минус этого метода ещё и в том что он не имеет ограничение на количество символов которые пользователь может ввести физически в консоли,т.к. когда пользователь будет передавать текст в буфер консоли, то тот в свою очередь будет выбрасывать в твой буфер (в массив в куче например), в отличие от метода WinAPI - ReadConsole (ReadConsoleW для широких), в котором ограничение ввода установлено на 256 символов (из которых видимые 254, два последних это переход на новую строку и нулевой терминатор), при условии что размер массива меньше 256*(n+1).
Как вариант эту проблему можно решать, через какой-нибудь дескриптор консоли, смотреть сколько байт находятся в буфере консоли, либо использовать getchar() (или его аналог для широких символов), либо писать свои методы которые будут правильно обрабатывать поток ввода, но сейчас на меня набежит один шиз, который не пользуется предоставляемым API, и судя по всему ничего не программирует кроме своих самолетиков на кружке по авиамоделированию, будет доказывать что я не прав...
Короче говоря, нужно быть умственно-отсталым, чтобы на полном серьезе писать консольные утилиты используя scanf (или даже его аналоги вроде scanf_t), и если честно я на хую вертел аргументы в духе: "Но это же в стандарте написано, пок-пок...", нужно быть идиотом, чтобы не понимать, что в Си нет абсолютно всего, чтобы этого можно было легко использовать из "стандартной коробки", и тем более чтобы это было удобно, и работало правильно.
Это не блядская Java или Python, где за вас уже всё написали, и вы даже не задумываетесь что и как там работает "под капотом".
Не просто так говорят, что знание Си = знание операционных систем, знание того как работает железо, т.к. нужно знать не сам язык, а множество аспектов и нюансов архитектуры и среды выполнения, в которой ведётся разработка кода на Си (уже не говоря про умение работать с различными отладчиками и знание ассемблера).
Я бы переформулировал это немного иначе, пусть это и звучит абсурдно, но очень хорошо описывает суть вышеизложенного: "Си создан не для того чтобы на нем программировать в той или иной среде, скорее среда в которой ведется разработка, создана для того чтобы можно было писать на Си".

>>2567011
>пиздец
>кринж
>с ёбанным wchar
wchar_t— это тип данных стандарта ANSI/ISO C (а также использующийся в других языках программирования) для представления широких символов.
Да, я в курсе что размер wchar_t соответствует машинному слову, а т.к. это меньше 4 байт, то не создает возможности кодировать всю таблицу Юникода, в отличие от Linux где wchar_t составляет 32 бита, т.к. размер типа wchar_t определяется компилятором, вплоть до минимальных 8 бит, поэтому конечно же лучше его не использовать этот тип тем более для хранения юникода.
В этом вопросе, я признаю твою правоту, я ошибся, и не уточнил, что под wchar_t я имел ввиду short unsigned int (по крайней мере на моём железе это два байта, (gdb) p sizeof(short unsigned int) $1 = 2) для хранение двухбайтовых символов юникода.
кот_волшебник 11/01/23 Срд 03:56:54 #540 №2569794 
дайвер ктулху.jpg
>>2563333
>>2563349
>>2555643
>>2555621
>>2555298
>>2554813
>>2554022
>>2554027
>>2553938
>>2553885

Я больше не зайду на двач, хотел из любопытства, в последний раз, посмотреть что мне написали, и не более, т.к. это помойка на которой мало кто умеет нормально общаться, и к тому же она формирует вредные привычки в общении, закладывает деструктивные макросы мировосприятия довольно пагубно влияя на психику.
Проще говоря, 2ch = деградация.
На этом всё, всем пока, было приятно (и порой не очень) пообщаться.
Не будьте агрессивными петухами, используйте этот тред чтобы делиться полезной информацией, обмениваться знаниями или опытом, узнавать что-то новое, всем удачи.
Аноним 11/01/23 Срд 08:23:35 #541 №2569825 
>>2569617
т.е. у DirectSound/WME есть такая функция воспроизвести ноту? Или там тоже нужно какой-то свой сэмпл делать для эталонной ноты?
Аноним 11/01/23 Срд 10:52:50 #542 №2569910 
>>2569825
Ну разумеется нужно сигнал сделать сначала А ты как хотел?
Аноним 11/01/23 Срд 11:51:41 #543 №2569950 
>>2569794
Залетуха пришел в тред, насрал тут своими мокрописьками и говнокодом, а виноваты аноны. Правильно говорят «Если тебе все говорят что ты пьян, стоит присесть», но залетный этого не понимает и пытается в перефорс своей духотой.
Аноним 11/01/23 Срд 12:29:12 #544 №2569981 
bandicam 2023-01-11 19-26-54-633.mp4
>>2569910
>А ты как хотел?
Утерянные технологии древних.
Аноним 11/01/23 Срд 12:54:39 #545 №2570049 
>>2569794
Позитивное мировосприятие давно себя дискредитировало.
Аноним 11/01/23 Срд 15:05:13 #546 №2570246 
>>2569794
Ты не прав. Здесь очень много интересных людей сидит. Нужно только прорваться через это всё, что ты описал - и тогда ты поймёшь.
Аноним 11/01/23 Срд 15:34:43 #547 №2570287 
изображение.png
>>2569950
>Залетуха
>насрал
>мокрописьками
>говнокодом
>«Если тебе все говорят что ты пьян, стоит присесть»
>залетный
>не понимает
>пытается в перефорс

Ну если ты такой умный, напиши что-то полезное, книги например по системному программированию под Windows/Unix, полезные ресурсы, или можешь например скинуть ссылку на пример консольной утилиты в Win/Linux, а мы посмотрим на твой эталонный код, будет на что ровняться.

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

>>2570246
Да я устал что-то постоянно ждать от людей анон, как в реальном мире так и в виртуальном мире, проще просто изолироваться и делать то что тебе нравится, литературы полно, документация есть, бесчисленное море всевозможных ресурсов, форумов и прочего, возможность работать удаленно.
Каюсь, я и сам когда-то был таким, но это деградация общения, ни к чему хорошему не приводит, тем более в /pr/, я бы понял в /b/ где сидят полоумные школьники, или 40-летние скуфы которые ведут себя как те же полоумные школьники. Порой замечаю, как сам общаюсь подобным образом, и мне становится от этого противно, вызывает отвращение.
Аноним 11/01/23 Срд 16:15:18 #548 №2570351 
>>2570287
Ты же писал что ушел, чмоха.
Аноним 11/01/23 Срд 16:32:55 #549 №2570368 
изображение.png
>>2570351
Ожидал что ты это напишешь, всё же хочется завершить дилог.
Скинь ссылку на свой настоящий git-репозиторий, быть может ты работаешь в сфере оборонной промышленности, и тебя с твоей гениальностью вырвали с руками из твоего универа не дав времени на создание собственных проектов, в связи с чем у тебя нет git-репозитория, поэтому можешь написать простую консольную утилиту под Windows на чистом Си, только подробно закомментируй свой код, и укажи ссылки на используемые источники, либо названия книг которые ты использовал при написании кода.
Ты же не чмоха, или како-то залетун-говнокодер, верно ?

Только пожалуйста, не пиши что ты циник, мизантроп, плейбой и филантроп, и что тебе чужда чья-то оценка, т.к. это будет явная демонстрация неспособности аргументированной критики, не падай ниже плинтуса.
Аноним 11/01/23 Срд 16:40:23 #550 №2570373 
>>2569794
>>2570287
>>2570368
Шиз, прими уже таблетки. По твоей писанине и зацикленности на мокрописьках понятно, что ты нездоров.
Аноним 11/01/23 Срд 16:44:27 #551 №2570378 
1596651214072.png
>>2570368
>можешь написать простую консольную утилиту под Windows на чистом Си
Ну лови. Не знаю зачем тебе такое правда.
Аноним 11/01/23 Срд 16:45:31 #552 №2570380 
1566025696724.webm
>>2570368
Выкладывал около года назад уже.
Аноним 11/01/23 Срд 16:46:34 #553 №2570383 
>>2570373
>Шиз
>писанине
>зацикленности
>мокрописьках

Прими тот факт что твоих навыков хватает, только на то, чтобы оскорблять других пользователей в треде, и самоутверждаться за счет матерных выражений, а я в этот тред пришёл чтобы обменяться полезной информацией, узнать что-то новое.
кот_волшебник 11/01/23 Срд 17:03:57 #554 №2570406 
изображение.png
>>2570378
>непонятный кусок кода вырванный из контекста
>непонятно кому принадлежит
>без комментариев
>на C++

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

>>2570380
Меня не волнует что ты, и куда скидывал год назад или 5 лет назад, я прошу то, что у тебя есть сейчас, и делаю я это не для того чтобы можно было тебя унизить, в отличие от меня униженной чмохи, залетуна-говнокодера, а для того чтобы понять, "как правильно делать", узнать что-то новое от настоящего профи из мира программирования, именно поэтому я прошу, чтобы код был полным, с подробными комментариями (в разумных рамках), и ссылками на используемые источники/документацию, будь милосерден, потрать немного своего сверх-ценного времени.
К тому же т.к. ты профи, много времени у тебя не уйдет, всего-то прошу написать простую консольную утилиту под Windows, желательно чтобы программа понимала и умела работать с UTF-8 и читать символы на разных языках,
всего-то делов, для тебя как два байта переслать...
Аноним 11/01/23 Срд 17:06:14 #555 №2570408 
>>2570406
>скидывал год назад или 5 лет назад, я прошу то, что у тебя есть сейчас
То, что было год назад, никуда не исчезло и есть у меня сейчас.
> код был полным, с подробными комментариями
Просмотри видео, там подробнейший построчный аудиокомментарий.
Аноним 11/01/23 Срд 17:07:32 #556 №2570411 
>>2570406
>непонятный кусок кода вырванный из контекста
Я и не обещал что он будет полными или понятным.
>непонятно кому принадлежит
Анону.
>без комментариев
Самодокументированный код
>на C++
Мелочи. Ncurses сишная либа.
Аноним 11/01/23 Срд 17:20:37 #557 №2570429 
>>2570383
> я в этот тред пришёл чтобы обменяться полезной информацией, узнать что-то новое
Но пока все что ты сделал - это доебался до анонов со своей духотой и неадекным поведением. Поэтому отношение к тебе соответственное, можешь проследовать нахуй.
Аноним 11/01/23 Срд 17:27:19 #558 №2570441 
изображение.png
>>2570408
>Просмотри видео, там подробнейший построчный аудиокомментарий.

Ну хорошо, видео годное, посмотрю.

>>2570411
> Ncurses
Ну вот видишь анончик, я например не знал про этот Ncurses, не знал что есть такая замечательная библиотека для написания консольных утилит ввода-вывода, так что спасибо тебе, узнал что-то новое и полезное, а ведь изначально наш диалог мог начаться именно таким образом, вместо того чтобы покрывать друга друга матом и слать на разные стороны, другие аноны тоже узнали бы что-то новое и поблагодарили тебя.
кот_волшебник 11/01/23 Срд 17:34:55 #559 №2570449 
изображение.png
>>2570429
>Поэтому отношение к тебе соответственное, можешь проследовать нахуй.

Надеюсь ты сильно не обиделся на мои слова, извиняюсь если обидел тебя (без шуток), спасибо что написал про Ncurses.
И всё же, хочу добавить, что полностью нельзя уйти от использования API-операционной системы, особенно если пишешь на чистом Си.
Буду очень признателен, если ты не станешь слать меня нахуй, а например посоветуешь пару книг по системному программированию (желательно под Windows), я вот недавно нашел замечательную книгу: "Рихтер Дж., Назар К. - Windows via C C++. Программирование на языке Visual C++ - 2009".
Аноним 11/01/23 Срд 17:43:02 #560 №2570468 
>>2570441
>узнал новое
>ncurses
>Initial release1993; 30years ago
>ncurses is a free-software emulation of curses.
>The first curses library was developed for a BSD operating system, around 1980
Ох вау.
А ты точно Си-программист?
Аноним 11/01/23 Срд 17:53:42 #561 №2570487 
изображение.png
>>2570468
>А ты точно Си-программист?
Признаюсь, я не Си-программист, писал на других языках, и очень слабо знал Си и ассемблер (тем более C++), дело в том что меня сильно заинтересовал реверс (и системное программирование тоже), поэтому решил восполнить забытое, и прошло не так уж много времени с тех пор как взялся за изучение этой темы.
Не смотря на это, у меня большое желание изучить всё очень подробно, на сколько глубоко это возможно сделать, поэтому был бы рад комментариям и полезной информации от людей вроде тебя, которые варятся в этом не первый месяц, или год.
Аноним 11/01/23 Срд 20:48:52 #562 №2570769 
>>2569910
ну вот я и уточнял есть ли в винде встроенное такое
Аноним 12/01/23 Чтв 07:08:08 #563 №2571162 
image.png
image.png
Пикрил можно как-то более изящно сделать? Вот эти вот (i + 1) и (i - 1) немного смущают. Эта хуйня просто строит пирамидку пикрил2, с двумя пробелами в центре
Аноним 12/01/23 Чтв 07:16:00 #564 №2571164 
https://pastebin.com/J7xNAGsN говнокод если что
Аноним 12/01/23 Чтв 12:15:10 #565 №2571318 
pyr.png
>>2571162
В программировании нет понятия "изящно", чтобы еще его и сравнить как что-то более или менее. Такие понятия придумывают только смузихлебы и поехавшие преподы.
Есть скорость написания кода, скорость работы кода и потребление ресурсов.
Вот если нужно оптимизировать на скорость работы, то можно написать, например, так как на пикриле. Если задача будет выполняться особенно на больших размерах пирамид.
Видимо также у тебя подразумевается работа с некой двумерной картой, которую будут использовать не в вакууме.
Значит задача разбивается на три этапа:
1) инициализировать нашу карту какими-либо значениями (пустого места)
2) установить расположение пирамиды/юнитов на карте/пикселей в текстуре
3) отобразить/отрендерить это на экран/в текстуру

Данный алгоритм с пикрила оптимизируется еще двумя способами:
1) избавляемся от двухмерности массива и делаем одномерным
2) все циклы построены так, что мы можем каждый распараллелить по потокам, т.е. мы параллелим цикл в INIT, параллелим цикл в VIEW, а в SET мы можем и каждый из четырех циклов распараллелить и циклы сами выполнить в любом порядке, т.к. они работают с независимыми данными

надеюсь, что ты не лабу делаешь))
Аноним 12/01/23 Чтв 12:31:08 #566 №2571333 
>>2571318
Бля, братан, спасибо, но я до таких умных вещей еще не дошел. Но спасибо, попытаюсь понять, че все это значит

>надеюсь, что ты не лабу делаешь))
Зря надеешься(
https://cs50.harvard.edu/x/2023/psets/1/mario/more/
Аноним 12/01/23 Чтв 15:21:19 #567 №2571543 
pyr.png
>>2571333
> Зря надеешься(
ладно, ладно...
Аноним 13/01/23 Птн 07:17:16 #568 №2572077 
>>2571543
>рисует фигуры
>printf()
printf это же потоковый вывод, годится только для портянок логов - последовательного выблева данных, но никак не для рисования по экрану. Что это за терминальная мозговая недостаточность, что даун не понимает таких элементарных вещей?
Аноним 13/01/23 Птн 07:43:26 #569 №2572082 
>>2572077
Пчел, спокнись, он просто лабу делает.
Аноним 13/01/23 Птн 07:50:38 #570 №2572087 
>>2572082
> мы тут просто серем тупостью
Ну и зачем? Что значит "просто"? Просто дебилы, и не мешай нам дебилить, так что ли?
Аноним 13/01/23 Птн 08:15:44 #571 №2572091 
>>2572077
> Что это за терминальная мозговая недостаточность, что даун не понимает таких элементарных вещей?
>>2572087
> Ну и зачем? Что значит "просто"? Просто дебилы, и не мешай нам дебилить, так что ли?
ты то уж что порвался, я ему решил задачу с тем вариантом вывода, что у него была в условии, для визуализации алгоритма. Мне ему что, вкорячивать работу с контекстами графических устройств, может еще тут конвеер вулкана развернуть для такой задачи было нужно?
Мне-то не трудно, но наглядности это значительно лишает, т.к. акцент тут на алгоритмах, а не выводе, поэтому в учебных лабах это и используется там, где нужно. Как тебя похмелье-то после праздников еще не отпускает.
Аноним 13/01/23 Птн 08:19:57 #572 №2572093 
>>2572077
> никак не для рисования по экрану
Чем тебе ascii рисунки не рисунки?
Аноним 13/01/23 Птн 12:02:33 #573 №2572221 
>>2572091
>решил задачу
Один пришел с тупой задачей, другой для него решил. В результате оба отупели еще больше. Браво.

>Мне ему что, вкорячивать работу с контекстами графических устройств
>консоль
>работу с контекстами графических устройств
Вот-вот, результат одебиливания налицо.

>>2572093
А ты лучше вообще не пиши, раз не понимаешь разницу между принципом работы printf и поставленной задачей рисовать на экране. Это даже к программированию не имеет никакого отношения, а сырой здравый смысл - базовое наличие мозга, не тупить как дебил.
Аноним 13/01/23 Птн 12:08:52 #574 №2572227 
>>2572221
Чел, ты реально тупой или троллишь так?
Аноним 13/01/23 Птн 15:21:14 #575 №2572482 
>>2572227
Дебил, ты вообще понимаешь что такое рисование? Представь холст или программу паинт, а теперь подумай, что является основой для процесса рисования? Подсказываю - место, координаты по которым ты собираешься наносить мазки своего рисунка. Рисование подразумевает прямоугольную площадь с ПРОИЗВОЛЬНЫМ ДОСТУПОМ. Заметь, тут программирование даже ни при чем, всего лишь надо не быть тупогогим имбецилом безмозглым, но ты не смог.

А теперь скажи, где ты видишь координаты у printf?
Правильно, нигде. Так какого хуя ты лезешь в рисование этим говном совершенно не подходящим для рисования?

Теперь уже программирование. Ты вообще понимаешь, тупой выблядок собаки, что такое компьютерный экран и как происходит вывод на него изображения? Что нужно чтобы рисовать? Нет, не понимаешь. Я бы сейчас посоветовал идти читать, учиться, но не буду. Потому что бесполезно, прежде чем учить компьютеры надо не быть дебилом, а ты уже конченый даун даже без программирования, что ясно видно по первому абзацу не касающемуся программирования, где ты обосрался.
Аноним 13/01/23 Птн 15:53:31 #576 №2572503 
>>2572482
> пук
Dwarf fortress и вобще посмотри что такое игры в терминале
Там неожиданно рисуют картинку симвалами ascii

но спасибо за пасту, улыбнулся с тупости
Аноним 13/01/23 Птн 15:56:26 #577 №2572510 
1599301809848.png
>>2572503
Аноним 13/01/23 Птн 15:57:32 #578 №2572513 
>>2572482
Нет, не подразумевает. Традиционно вывод производится в консоль, а у консоли есть способы передвинуть курсор обратно.
Аноним 13/01/23 Птн 16:11:06 #579 №2572531 
>>2572510
Зумерок, не в Стиме, а олдовуюверсию
Хоть в Вики бы зашел, ну или картинки загуглил
Аноним 13/01/23 Птн 16:14:09 #580 №2572536 
1565700553683.png
>>2572531
Аноним 13/01/23 Птн 16:17:35 #581 №2572544 
>>2572536
http://bay12games.com/dwarves/screens.html
Аноним 13/01/23 Птн 16:19:49 #582 №2572549 
1661728858428.png
>>2572544
Аноним 13/01/23 Птн 16:54:23 #583 №2572608 
>>2572077
>>2572221
>>2572482
Анончик мне помог, а тебя хуле порвало-то?
Аноним 13/01/23 Птн 22:19:18 #584 №2573022 
>>2572482
Это просто поразительно, как анон мог порваться из-за дефолтного printf'a.
Аноним 14/01/23 Суб 01:11:19 #585 №2573206 
>>2572482
У терминала нет координат. В том то и фишка, что это потоковое устройство, а не блочное. Именно это позволяет подключаться к серверу и там играть в нетхак.
Аноним 14/01/23 Суб 05:52:21 #586 №2573290 
>>2573206
> У терминала нет координат
Результат одебиливания printf-ом налицо.
Пожалуйста, наглядный пример, как от дебильных задач люди тупеют. С каждым разом привыкают к тупости и тупеют еще сильнее. Уже даже когда прямо тыкают в ошибку, не шевелятся. Тупость закостенела намертво, обученный готов. Занавес.
Аноним 14/01/23 Суб 12:44:35 #587 №2573472 
>>2573022
> Это просто поразительно, как анон мог порваться из-за дефолтного printf'a.
не для всех новогодние праздники проходят без последствий, в том числе для психики)
Аноним 14/01/23 Суб 14:07:36 #588 №2573561 
1527367480609.png
>>2573290
Поколение ЕГЭ, спок.
Аноним 14/01/23 Суб 17:07:56 #589 №2573806 
Почему сложно учить? Забывается все концепты, быстро.
-девственный ньюфаг
Аноним 14/01/23 Суб 23:09:15 #590 №2574155 
>>2573806
Может тебе просто не интересно то, что ты учишь.
Аноним 15/01/23 Вск 00:05:30 #591 №2574232 
>>2573806
Все запоминается повторениями, причем циклическими, через неделю, через месяц. Помнят только то чем постоянно пользуются, в окружающем мире мало похожего на код.
Аноним 15/01/23 Вск 08:29:03 #592 №2574392 
>>2574232
>Все запоминается повторениями
Вот так printf-ы уродуют мышление туповатого быдла.
Аноним 15/01/23 Вск 13:47:28 #593 №2574525 
>>2574392
>жопа продолжала рваться

зашивайся, кал
Аноним 16/01/23 Пнд 21:13:51 #594 №2576539 
>>2573806
> Почему сложно учить? Забывается все концепты, быстро.
> -девственный ньюфаг
С - самый простой язык для изучения. Но самый сложный если пытаться написать на нем что-нибудь вменяемое
Аноним 16/01/23 Пнд 22:04:18 #595 №2576594 
>>2576539
Что вменяемого ты писал/пытался написать на си?
Аноним 17/01/23 Втр 00:08:40 #596 №2576642 
Вот realloc() может вернуть указатель, отличный от переданного в качестве аргумента указателя на блок памяти, т. е., по видимому, выделить блок большего размера в другой части кучи, замаппить его/сделать memmove, здесь я уже хз.
А что делать, если я исходный блок разбиваю как хочу и везде использую указатели на произвольные участки внутри этого блока? После вызова realloc() память по всем моим указателям будет содержать мусор. Как сделать, чтобы блок нового размера был доступен по старым адресам? mmap здесь может помочь? И вообще, если у меня возникла такая необходимость, то всё ли я делаю так?
Аноним 17/01/23 Втр 00:28:14 #597 №2576652 
>>2576642
>Что я делаю не так
Используешь realloc.
Аноним 17/01/23 Втр 09:59:11 #598 №2576790 
c-code.png
build.png
js-code.png
есть си код (пик-1)
клангом собираю из него wasm (пик-2)
после чего дергаю функцию из js (пик-3)

все работает нормально, а как теперь в обратную сторону: вызвать из си функцию js?
Как я вычитал, что формируем importObject, который должен будет содержать всё импортируемое в си, пихаем его вторым аргументом в функцию instantiateStreaming, а как правильно объявить ее в си коде и нужны ли еще какие-то флаги при компиляции?
Аноним 17/01/23 Втр 14:58:32 #599 №2577070 
>>2576539
Наоборот же, самый простой. В си ты можешь делать все, что хочешь. Ты не зависишь от либодела, насравшего говном в дефолт функционал.
Аноним 17/01/23 Втр 15:57:55 #600 №2577120 
image.png
Какое из четырех решений лучше с точки зрения дизайна/читабельности? Надо посчитать финальный счет, когда известны: bill (стоимость без налога), tax (налог в процентах) и tip (чаевые в процентах). Решения разделены строкой если че, все они дают один результат. Четвертое решение это просто математическое упрощение третьего кек
Аноним 17/01/23 Втр 16:00:13 #601 №2577124 
image2023-01-17145935938.png
Ребята , кто может объяснить почему получается именно такой оутпут. Очень слабое понимание как устроено выделение памяти
Аноним 17/01/23 Втр 16:00:39 #602 №2577126 
>>2576594
Ничего. Поэтому и говорит что сложно.
Или у тебя есть пруфы обратного? Ну показывай.

Си - язык говно, язык пидор с практической точки зрения. Но тут нет вины Си, это наоборот следствие его охуенности. Си идеально соответствует компьютеру, поэтому проблемы с написанием программ это проблемы компьютьеров, железа, а не Си.
"Персональные компьютеры (PC)" как платформа это говно ёбаное, отсюда и лезут проблемы. Ничего нельзя написать нормального потому что компьютеры не содержат программной поддержки своего железа, т.к. оно нефиксировано, может быть каким угодно, а значит и годную прошивку не напишешь.
Как результат, всё сваливается на сторонние библиотеки, васянские поделки. ПК это сплошное васянство, и Си только лишь отражает эту проблему как идеальное зеркало из за своей идеальности.
Аноним 17/01/23 Втр 16:02:09 #603 №2577129 
>>2577120
Бтв, правильно ли я понимаю, что с точки зрения производительности лучшие решения 2 и 4, так как там дублирующихся действий?
Аноним 17/01/23 Втр 16:03:14 #604 №2577131 
>>2577129
>нет дублирующихся действий
фикс
Аноним 17/01/23 Втр 16:08:16 #605 №2577135 
Анончики, помогите! Что в этом коде вызывает ошибку переполнения и почему? Она возникает в процедурке array, которая наполняет массив случайными числами, и именно в той части кода, которая не генерит случайные значения и присваивает их индексам массива, а в той части кода, которая ответственна за сортировку этого массива, да, она пока никак его не сортирует, но это уже след. проблема для решения. Мне бы понять, почему возникает переполнение, и причём не при каждом вызове программы.

https://pastebin.com/SHepZvKM
Аноним 17/01/23 Втр 17:05:18 #606 №2577256 
>>2577135

У меня всё получилось! Я во всём разобрался и написал идеальный код для решения моей простенькой задачи! Спасибо всем неравнодушным сишникам, которые мне помогли в этом!!! УЁБКИ!!!!!
Аноним 17/01/23 Втр 17:23:24 #607 №2577288 
Стикер
>>2577135
>причём не при каждом вызове программы.
Дай угадаю, примерно 1 раз из 11?
Аноним 17/01/23 Втр 17:28:34 #608 №2577296 
>>2577288
Из-за чего такое предположение? Нет, чаще! - чуть не каждый 3-й, 4-й раз.
Аноним 17/01/23 Втр 17:32:00 #609 №2577308 
>>2577296
Ну я не разбирался во всех циклах.
Но у тебя массив [10] это элементы 0...9
Зачем же тогда берешь остаток от деления на 11? Надо писать %10.
Потому что только так ты получишь 0..9
Аноним 17/01/23 Втр 17:44:10 #610 №2577333 
>>2577308
Я пока не использую эту переменную. А так да, что-то косякнул!! Спасибо за наводку. Но ошибка явно не в этом. Ладно, можешь забить на ошибку - я вроде разобрался где она у меня возникала, но не понимаю почему так происходит, т.е., почему ошибка переполнения возникает не при каждом вызове? Косяк был в последнем вложенном цикле, в процедурке array, там при инициализации счётчика он равен равен счётчику основного цикла, а по ходу пробегания по массиву эта "вложенный" счётчик должен уменьшаться, а я применил операцию инкремента. Но почему в этом случае программа падала не каждый раз - я хз. Наверное, не каждый раз выполнялось условия активации вложенного счётчика. Надо проверить!
Аноним 17/01/23 Втр 18:01:47 #611 №2577361 
>>2577333
Может быть потому что у тебя int i = 0, в последнем цикле int j = i (= 0) и при этом ты обращаешься к (p + j - 1), т.е. вылезаешь до массива? Да и до этого, *(p + i - 1) при i == 0. Но повторюсь в таком коде мне лень копаться, я просто смотрю очевидные моменты.
Аноним 17/01/23 Втр 18:19:08 #612 №2577390 
>>2577361
Нет, не в этом дело! Если бы было в этом >*(p + i - 1) при i == 0 дело, то мне думается, что программа падала бы каждый раз, потому как это условие проверяется при каждом проходе, а вот в последний вложенный цикл программа заходит только в том, случае, если выполняется условие, которое может, при рандомном заполнении массива, не выполняться каждый раз.

>в таком коде

А поделись своим видением нормального кода. Что мне нужно подтянуть, чтобы писать удобоваримый для других людей код? Или пока не заморачиваться этим, потому что я пока постигаю эту науку, изучая по книгам и статейкам в тырнете, типа лучше для начала научиться решать задачки посложнее, освоить алгоритмы, а потом можно будет и красотой кода заморочиться? Или лучше сразу полезную привычку вырабатывать?
Аноним 17/01/23 Втр 19:05:13 #613 №2577471 
>>2577390
>А поделись своим видением нормального кода
Я отказался от Си в пользу С++, но это тсс. Все же другой тред.
Аноним 17/01/23 Втр 21:07:28 #614 №2577631 
>>2577124
на пике просто эталонный код какой-нибудь лабораторной, хорошо, что на практике так непонятно никто не пишет
Аноним 17/01/23 Втр 21:12:08 #615 №2577639 
>>2577129
> Бтв, правильно ли я понимаю, что с точки зрения производительности лучшие решения 2 и 4, так как там дублирующихся действий?
компилятор может оптимизирует, а может не оптимизирует, тут как карта ляжет
с точки зрения производительности - скорее всего сразу считаешь во float и оптимизируешь формулу, удаляя лишние/прожорливые действия
Аноним 17/01/23 Втр 21:31:23 #616 №2577654 
>>2577124
Потому ты прекращаешь работу программы на первой итерации цикла. Понимание памяти здесь ни причём. В чём вообще задача состоит? Перевернуть строку?
Аноним 17/01/23 Втр 22:45:35 #617 №2577714 
>>2577654
>В чём вообще задача состоит?
Продемонстрировать понимание работы указателей. Задача провалена.
Аноним 17/01/23 Втр 23:00:35 #618 №2577726 
>>2577124
Как же я проорал когда два указателя пробежали мимо друг друга и пошли обратно разворачивать.
Аноним 18/01/23 Срд 05:16:30 #619 №2577921 
>>2495049 (OP)
Объясните несведущему совершенно в программировании ламеру, зачем нужен C, когда есть C++?
В чем нюансы вообще? В чем их разница столь ключевая
Аноним 18/01/23 Срд 08:39:54 #620 №2577983 
>>2577921
https://tproger.ru/articles/what-c-is-good-for/
t
t
p
s
:
/
/
t
p
r
o
g
e
r
.
r
u
/
a
r
t
i
c
l
e
s
/
w
h
a
t
-
c
-
i
s
-
g
o
o
d
-
f
o
r
/








После этого пста у тебя будет понимание в чём отличие чистого си от плюсов.
Аноним 18/01/23 Срд 08:44:39 #621 №2577986 
>>2577714

Пиздец, что за ебанутая задача и её исполнение!!!??? А в функцию или процедурку передать массив, чтобы продемонстрировать понимание работы указателей?
Аноним 18/01/23 Срд 16:38:26 #622 №2578479 
>>2577921
> зачем нужен C, когда есть C++? В чем нюансы вообще? В чем их разница столь ключевая
компилятор С есть на любом утюге сейчас пока продолжает появляться на любом утюге для новых устройств, плюсы - нет
возможно в отдаленном светлом будущем будет только уже llvm со своим ir, под которое будет подгоняться все свежее железо
Аноним 18/01/23 Срд 16:57:13 #623 №2578513 
>>2577654
Писал вчера финальный экзамен в парижском университете , дали задание на листе и попросили написать только output. Вот в чем смысл был)))
Аноним 18/01/23 Срд 17:20:29 #624 №2578580 
>>2578513
французы такие геи)))) туда тебе и дорога)))))))))))))))))))))))))))))))
Аноним 18/01/23 Срд 17:42:37 #625 №2578662 
>>2578479
Двачую, причем соблюдающий стандарт компилер Си пишут многие в одиночку как хобби или курсач, а вот С++ компилер вообще мало кто написал.
Аноним 18/01/23 Срд 17:54:11 #626 №2578685 
>>2578662
Почитайте Столярова, он тоже нахваливает чистый Си из-за zero runtime.
Аноним 18/01/23 Срд 18:01:46 #627 №2578706 
>>2578685
ну так-то си во многом хорош, если б не древние костыли, от которых не избавиться
поэтому появляются всякие zig, v, чтобы оставаться в рамках c и его функционала и простоты понимания, но убирая всякие косяки и костыли прошлых лет
Аноним 18/01/23 Срд 18:13:28 #628 №2578748 
>>2578706
Zig приятный, но последние пару версий совсем неготовые, и тоже довольно сложный, я бы его компилятор вряд ли написал.
Аноним 18/01/23 Срд 18:35:45 #629 №2578799 
>>2578706
Так костылить начали в стандартах, если юзать чистый Си без этих нововведений, т.е. не использовать фичи из новых стандартов, то всё ок - Си выполняет свою задачу, как язык, который создавался на замену ассемблеру. А, если его использовать как высокоуровневый язык, то я ебал его маму рот - Пайтон в тыщу раз проще и интуитивнее, но, при этом, если юзать Пайтон, то всегда остаётся мысль о том, что ты нихера не шаришь то, как работает комп, т.е. для тебя всё это лютая магия; но с Си таких проблем нет - по мере погружения в этот язык, начинает прояснятся картинка в голове, плюс появляется способность читать код на Си, следовательно появляется возможность погрузиться в ядро линукса и начать понимать, как устроена ещё и ОСь, а за ней и как устроена и работает сеть. Вот этим этот язык и хорош - если хочешь понять устройство и принцип работы компа, а за ним понять и принципы устройства нашей цифровой цивилизации, то вежливо просимо в великий и могучий Си.
Аноним 18/01/23 Срд 18:36:17 #630 №2578800 
>>2578748
ну там он переезжал на рельсы аутофилляции, поэтому последние версии такие
а по сложности там особо ничего нового сверх и нет, деферы, которые от Си уже просят уже как от С11, импорт вместо инклуда, так то же самое примерно, еще UB поменьше, так что особо не сильно
Аноним 18/01/23 Срд 18:37:30 #631 №2578801 
>>2578799
ну так да, на с89 пишем алгоритмы, числодробилки и либы, потом дергаем любым на вкус скриптовым языком их api
Аноним 18/01/23 Срд 18:46:12 #632 №2578814 
image.png
>>2578801
Аноним 18/01/23 Срд 21:21:18 #633 №2578983 
>>2578801
Дебильные сказки. Скриптомакака не осилит си, а программист на си не будет пользоваться скриптопарашей.
Аноним 18/01/23 Срд 21:36:49 #634 №2578999 
>>2578983
Одебилившего виндузятника сразу видно за сто вёрст!!!!!!!
Аноним 18/01/23 Срд 21:47:42 #635 №2579010 
>>2578983
что ты несешь
Аноним 18/01/23 Срд 21:50:38 #636 №2579012 
>>2579010
Этот долбоёб пытается нести окна в массы, а за окнами он несёт смерть всему разумному, не иначе. Он, наверное, фан С#.
Аноним 18/01/23 Срд 23:19:55 #637 №2579084 
>>2578983
Никакого противоречия.
Аноним 19/01/23 Чтв 01:53:31 #638 №2579176 
Месяц не заходил сюда и обосрался с драмы в треде. Спасибо вам за хорошее настроение, парни. Жаль, что в софтаче такого нет и там одни долбоебы остались.
Вернусь через месяц, снова.
Аноним 19/01/23 Чтв 09:48:25 #639 №2579285 
>>2579084
Есть.
>>2578801
>на с89 пишем алгоритмы, числодробилки и либы, потом дергаем любым на вкус скриптовым языком
Видишь, написано что это один человек, и на си пишет и на скриптах вперемешку. Так не бывает. Кто пишет на скриптах си не осилит, а кто пишет на си не будет писать на скриптах.

Налицо тупая скриптомакака которая пиздит. Считает, что если есть какие-то сишные либы которые можно дергать из скриптов, значит ЭТО МЫ ПИШЕМ НА СИ кудкудах. Короче, чухло приписывает себе чужие заслуги. Обычная тупая чернь, макакоскот скриптовый.
Аноним 19/01/23 Чтв 10:37:13 #640 №2579313 
image.png
>>2579285
Блять, какой же долбоёб тут по треду прыгает!!! Просто пиздец!!! Долбоёб, нахуя тебе дёргать целые сишные либы, когда ты можешь дёргать результат, который получен на Си?
Аноним 19/01/23 Чтв 11:25:53 #641 №2579344 
я чот нихуя не понел
си же и есть скрипт
хули вы пиздите черти
Аноним 19/01/23 Чтв 11:56:48 #642 №2579361 
>>2579344
Скрипт это хуем елозить по рту.
Бесконечный скрипт это грязным, ниггерским хуем елозить по твоему рту.
Аноним 19/01/23 Чтв 12:22:17 #643 №2579385 
>>2579285
> кто пишет на си не будет писать на скриптах. Налицо тупая скриптомакака которая пиздит
чел, я пишу на с, плюсах, расте, питоне, луа, js... для меня нет особой разницы на чем писать, я программист, скриптами я тоже пользуюсь внезапно, но чаще всего я пишу либы, чтобы тот, кто не программист просто дергал api этих либ через скриптовый язык или вообще интерфейс
тебе так нравится, что тебя обоссывают всем тредом? )
Аноним 19/01/23 Чтв 12:23:28 #644 №2579388 
>>2579344
> я чот нихуя не понел си же и есть скрипт
не, это ниша за AngelScript он же сиська с крыльями
Аноним 19/01/23 Чтв 14:52:45 #645 №2579545 
>>2579285
"мы" очевидно означает фирму целиком.
Аноним 19/01/23 Чтв 22:42:27 #646 №2580170 
Какой же си ахуенный язык это просто пиздец. Без шуток когда удается высрать функцию что проходит все тесты начинаю мастурбировать просматривая код своей программ
Аноним 19/01/23 Чтв 22:47:48 #647 №2580174 
>>2580170
хочешь подрочить на гуро?
Аноним 19/01/23 Чтв 23:24:10 #648 №2580207 
>>2576652
А что делать, если нужно изменить размер блока, но сохранить указатели на участки внутри него? Понятно, что можно вместо указателей хранить смещения, но я надеялся на что-то более приятное.
Аноним 20/01/23 Птн 01:22:26 #649 №2580267 
>>2580207
Динамичнский массивы же как раз по смещению на размер элемента и работают.
Аноним 20/01/23 Птн 01:31:06 #650 №2580272 
>>2580207
Depends. Может быть надо больше памяти выделять заранее. Может быть если у тебя указатели на что-то, то получается обычная куча, и неважно что она не непрерывная.
Аноним 20/01/23 Птн 09:32:46 #651 №2580381 
>>2580207
Открой спеки процессора и посмотри как он работает с адресами. Тогда и идиотских надежд не будет. Программирование это техника, а не религия с загадыванием желаний.
Аноним 20/01/23 Птн 12:48:27 #652 №2580596 
>>2580174
Уже
Аноним 20/01/23 Птн 19:45:35 #653 №2581210 
>>2580381
Язык Си не завязан на то, как процессор работает с адресами. Это абстрактный язык со своей моделью памяти.
Аноним 21/01/23 Суб 10:55:40 #654 №2581659 
xw4a4gg0zjq31.jpg
>>2581210
Ну удачи в си с таким макакиным подходом.
Аноним 21/01/23 Суб 13:43:04 #655 №2581790 
>>2581659
Так я же не ты, который путает язык и процессор.
Аноним 22/01/23 Вск 16:09:55 #656 №2583079 
Как в линуксе на си/с++ отследить плаг анплаг эзернета? Пробовал через пул для /sys/.../carrier файла, но это чет не блокирующий вызов, я так понял из-за того что этот файл в виртуальной фс, че еще варианты есть кроме опроса по таймеру?
Аноним 23/01/23 Пнд 15:31:41 #657 №2584456 
Дейтел получше будет для вката, чем керриган, разве нет?
Аноним 23/01/23 Пнд 16:18:44 #658 №2584559 
>>2584456
Хз, я по Прате вкатывался. Да и сейчас его юзаю как справочник, если что подзабуду.
Аноним 23/01/23 Пнд 23:31:28 #659 №2584908 
Как можно собрать проект на си и винапи на винде? Не хочу качать студию. Есть где толковые примеры?
В гугле все ссылаются на студию
Аноним 23/01/23 Пнд 23:47:10 #660 №2584914 
>>2584908
Что-то мне подсказывает что так не получится.
Надо все равно MS Build Tools и Windows SDK качать, и clang.
Или может быть кросскомпиляция MinGW из под cygwin?
Короеч все выглядит большим гемором, чем студия.
Может кто еще подскажет.
Аноним 23/01/23 Пнд 23:52:34 #661 №2584920 
>>2584914
Спасибо за инфу, анон

>Надо все равно MS Build Tools и Windows SDK качать, и clang
А есть где пример? Хочу организовать это в vscode, без чего либо тяжеловесного. Скачал там плагин с плюсами, но он ест-но не видит всё что связано с винапи.
Аноним 24/01/23 Втр 09:35:09 #662 №2585086 
IMG20230124133121151.jpg
Почему в статье 13 и 14?
Я правильно понимаю, что тут:
1)точки следования это ; и ;
2) присваивание у оператора присваивания это тот же побочный эффект что инкременты
3) получается побочный эффект присваивания может происходить до инкрементов, тогда в переменной будет 12?
Аноним 24/01/23 Втр 10:00:17 #663 №2585096 
>>2585086
Чел, чёт ты какую-то хуиту читаешь, потому что алгоритм тут следующий:
1) Переменной i присваивается значение 5;
2) К переменной i прибавляется единица;
3) К переменной i прибавляется единица;
4) Переменной i присваивается значение суммы двух переменных i, которая уже равна 7 после двух операций инкремента;

Тут как не крути, но i будет равна 14.
Аноним 24/01/23 Втр 10:15:35 #664 №2585104 
>>2584908
> Как можно собрать проект на си и винапи на винде? Не хочу качать студию. Есть где толковые примеры? В гугле все ссылаются на студию
https://rsdn.org/article/baseserv/api32.xml
когда уже освоите хотя бы гугл
Аноним 24/01/23 Втр 12:04:09 #665 №2585176 
gcc.png
tcc.png
>>2585096
>ты какую-то хуиту читаешь
Или ты малость не шаришь. Черным по белому же написано, зависит от компилятора и моральной деградации его создателя.
Аноним 24/01/23 Втр 12:35:21 #666 №2585203 
>>2585176
Да, я после того, как написал псто, подумав, понял, что какой-нибудь уебан может написать компиллятор, который не будет соблюдать правильный приоритет операций.
Аноним 24/01/23 Втр 14:04:03 #667 №2585294 
>>2585203
Тут один еблан это ты, компиляторы пишут под стандарт, а не под то как тебе кажется это должно работать. А стандарт знать должен ты, чтобы понимать, что может выдать компилятор
Аноним 24/01/23 Втр 14:06:50 #668 №2585297 
>>2585294
А читаю я просто Вики статью про UB...
Аноним 24/01/23 Втр 16:29:28 #669 №2585539 
>>2585294
Но ведь если стандарт допускает говно, говно стандарт, а не я. Кто же виноват, что си дохлый язык, на чей стандарт всем поебать.
Аноним 24/01/23 Втр 17:26:20 #670 №2585612 
>>2585294
А зачем же выпускать стандарт, который будет ломать всем привычную логику? А, еблан? Или, если тебе в тарелку наложить говна (настоящего человеческого говна), то ты не будешь сопротивляться и костерить повара, а начнёшь жрать говно, потому что оно подано тебе на тарелке?
Аноним 25/01/23 Срд 00:21:07 #671 №2586146 
>>2585104
>собрать проект на си
>Не хочу качать студию
>скидывает древнюю статью с билдом через плюсы и в студии

Когда уже начнёте читать а не кряхтеть?
Аноним 25/01/23 Срд 00:59:09 #672 №2586159 
>>2586146
Сначала поживи с наше, щенок.
Аноним 25/01/23 Срд 05:29:38 #673 №2586226 
>>2585612
>>2585539
Хуйню какую-то несёшь, стандарт не просто так написан, чем больше там операторов является точками следования, тем медленнее будет код. Ты натурально не понимаешь, поэтому несёшь хуйню, а делали это всё умные деды. Вообще лучше бы на мой вопрос ответили а не вот эти пуки пустые высирали
Аноним 25/01/23 Срд 09:10:46 #674 №2586287 
>>2586226
Ты вообще понимаешь, что происходит, когда твой погромисткий компилятор, написанный для стандарта, который создан погромистами, которые делают из Си высокоуровневый язык, чтобы следовать, по каким-то только им известным причинами, за модными тенденциями, лишая, при этом, Си своего плюса - zero runtime? Ты понимаешь, что то говно, которое ты защищаешь в этом выражении: i = ++i + ++i, чтобы получить 13 хранит одну и ту же переменную в разных местах и с разными значениями? Теперь, дурик, объясни мне - нахуя это вообще нужно? Нахуя ломать язык, единственные плюсы которого - скорость и возможность скомпилить его на утюге?
Аноним 25/01/23 Срд 12:43:25 #675 №2586483 
>>2586287
>чтобы получить 13 хранит одну
Ты какую-то хуйню нафантазировал. У ++ и + просто один приоритет, они выполняются последовательно. А вот чтобы получить 14, нужно задать искусственный приоритет операций, несвойственный языку изначально.
Аноним 25/01/23 Срд 13:01:29 #676 №2586495 
>>2586287
Складываются не переменные, а значения, естественно они должны храниться. А у тебя какая-то шизанутая оптимизация: раз там указана переменная, значит работа только с переменной, а раз переменная только одна, значит и значение только одно - после всех вычислений. Это шизофазия. Не нужны такие ебанутые оптимизации вопреки здравому смыслу того что написано - выражения сложения.
Аноним 25/01/23 Срд 14:07:00 #677 №2586556 
>>2586483
>они выполняются последовательно
>искусственный приоритет операций, несвойственный языку изначально
Совсем пизданулся? То есть, ты хочешь сказать, что в этой реализации Си арность операций никак не влияет на её приоритет, да и вообще в этой реализации Си нет никаких приоритетов у операций?
Это что же, если мы зададим такое условие:
if (k + 1 <= k % 2), то оно будет true?


>>2586495
>естественно они должны храниться
Что они? Значения? Ебанутый, как значение привязывается к переменной?
>А у тебя какая-то шизанутая оптимизация
Ебанутый, это не оптимизация, и тем более не моя, а работа компьютера! Значение переменной хранится в определённой ячейке памяти или регистре процессора, с которой (ячейкой памяти), или с которым (регистром процессора) происходит определённая работа.


Блять, такое ощущение, что не с сишниками разговариваешь, а с ебанутыми питонистами, которые проходят какой-то манякурс в скиллфактори или где ещё вы, блять, этого говна понабрались?
Аноним 25/01/23 Срд 14:48:45 #678 №2586605 
>>2586556
имеем:
i=5;
надо получить:
i= ++i + ++i;
смотрим по порядку:
++i
какой значение? - 6
Всё, 14 уже не получится.
Если в сях по стандарту это не выполняется, значит такой поеботой просто нельзя пользоваться, нечитаемый человеком код.
Аноним 25/01/23 Срд 14:57:56 #679 №2586626 
>>2586556
>Совсем пизданулся?
То есть в твоем мире все инкременты в выражении должны выполняться до первой операции сложения?
И что же тогда должно получиться в результате выражения:
int i=5; i=++i + ++i + ++i + ++i;
Но питонист тут я, да.
Аноним 25/01/23 Срд 15:01:44 #680 №2586636 
image.png
>>2586605
Блять, а это похоже вообще скрипто-вебмакака понабежала в тред! Просто пиздец!!!!

>i= ++i + ++i;
>смотрим по порядку:
>++i
>какой значение? - 6
блять, ещё и неграмотная
Тут надо, продолжить, долбоёб:
>смотрим дальше
>++i
на твоём чурбекском языке продолжу
>какой значение? - 7
>смотри по порядку дальше
>+
>какой значение? - слева в выражении стоит переменная со значением 7, справа в выражении стоит переменная со значением 7, т.е. имеем два аргумента, которые являются значением одной и той же переменной, которая, блять, сука вы ёбанные дегенераты и уёбки, хранит своё значение в одной и той же ячейке памяти, в бинарной операции сложение, которые равны семи, так, сука ЁБАНЫЙ РОТ БЛЯДИ ВЫ ТУПОРЫЛЫЕ, какой значение присвоится переменной i, если сложить 7 и 7?
Аноним 25/01/23 Срд 15:08:24 #681 №2586643 
>>2586626
Долбоёб, операция сложения является бинарной. Узнав эту сакраментальную тайну - посчитай сам своё ебанутое выражение. 31
Аноним 25/01/23 Срд 15:11:18 #682 №2586648 
>>2586643
Ну так посчитай. Почему инкременты, имеющие больший приоритет, не выполняются в первую очередь? Как обосрался, так сразу ушел в троллинг тупостью?
Аноним 25/01/23 Срд 15:15:35 #683 №2586656 
>>2586648
>Почему инкременты, имеющие больший приоритет, не выполняются в первую очередь?
Да, долбоёб, почему? Может помимо приоритета операций есть ещё и другие правила языка, допустим, которые говорят, что сложение есть бинарная операция, а, следовательно, если мы имеем уже два "готовых" аргумента, то их надо обязательно сложить? И кто тут обосрался, а, ебанашка ты, блять, питоническая?
Аноним 25/01/23 Срд 15:19:44 #684 №2586659 
>>2586636
Дальше смотреть не нужно, иначе получится, значение меняется в зависимости от записи последующих значений, это шизофазия, нечитаемый код, одно сплошное UB.

i=i+i
это арифмерическое выражение оперирующее значениями, а не переменными. В данном случае i это лишь алиас для её значения, числа 5. Так устроен язык си, это обыкновенная запись по значению.

i=i+i
эта запись вовсе не оперирует переменными, для того нужны указатели или ссылки, а тут запись по значению. То что опертор ++ увеличивает содержание переменной это побочный эффект, не относящийся к записанной арифметической операции. Арифметика происходит со значениями - анонимными числами, а вовсе не с переменными. Повторяю, для манипуляции переменными применяются указатели или ссылки.
Аноним 25/01/23 Срд 15:19:52 #685 №2586660 
>>2586656
То есть приоритет у операций одинаковый? Надо же, кто бы мог подумать.
Аноним 25/01/23 Срд 15:37:07 #686 №2586686 
>>2586659
>для манипуляции переменными применяются указатели или ссылки
Чел, ебать ты очевидные вещи рассказываешь! Спасибо, конечно! Но, то что, ОКАЗЫВАЕТСЯ, БЛЯТЬ, мы единицу прибавляем не к самой, блять, переменной, чтобы не получить, блять, в арифметическом выражении i1, а к её значению, которое, ОКАЗЫВАЕТСЯ, БЛЯТЬ, хранится не в самой переменной, а, БЛЯТЬ, ОКАЗЫВАЕТСЯ, просто где-то в памяти, т.е. в какой-то ячейке памяти, на которую, ОКАЗЫВАЕТСЯ, БЛЯТЬ, указывает указатель (давай ещё затри мне, что указатель тоже хранится где-то в памяти), и таким образом...

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

>>2586660
Ты тоже мне попытайся объяснить ебантизм, что я описал выше. А то ты, долбоёб питонический, даже не понимаешь, что такое арность операций. Хотя, если ты не понимаешь, что такое арность операций, то, блять, и не объяснишь мне ебантизм, что я описал выше. Поэтому просто, для начала, давай послушаем попытки этого 2586659 господина объясниться, а потом подумаем.
Аноним 25/01/23 Срд 15:45:47 #687 №2586694 
>>2586686
i=5;
i= ++i + ++i;
++i :значение 6
+
++i :значение 7
i= 6+7 :значение 13
14 не получится никак.
14 может получиться, если это не значения, а ссылки на переменную, но тут нет ссылок, это запись по значению.
Аноним 25/01/23 Срд 15:54:46 #688 №2586704 
>>2586694
1) Что такое сложение в ЯПе Си? Сложение - это бинарная операция.
2) Что делает сложение в ЯПе Си? Сложение получает сумму двух аргументов.
3) Откуда берутся эти два аргумента? Они хранятся в ячейках памяти.

>это запись по значению
Хорошо, давай проще:
>++i :значение 6
Когда ты получил значение 6, куда ты сохранил это значение? Уже сразу присвоил переменной i, которая стоит слева от знака равно?
Аноним 25/01/23 Срд 16:08:34 #689 №2586716 
>>2586704
Я кажется понял корень проблемы этого треда:
Кому-то из этого треда не помешало бы пройти курс низкоуровневого программирования. Чутка покодить на assembler и много вопросов и пустых мест в картинке о кодинге пропадут.

http://www.stolyarov.info/books/programming_intro/vol2

Приобщайтесь, аноны!
Аноним 25/01/23 Срд 16:17:04 #690 №2586720 
>>2586694
>>2586704
Я мимо шел, но в gcc получается 14.
https://onlinegdb.com/GyauuOQJQ
Если посмотреть дисассемблер в gdb, то там такоe выполняется:
mov [rbp-0x4], 0x5
add [rbp-0x4], 0x1
add [rbp-0x4], 0x1
mov eax, [rbp-0x4],
add eax, eax
Надеюсь, разметка не сожрет. Но вроде и так все понятно, что в моем случае i хранится по одному адресу и все действия выполняются только над ним.
gcc 6.3.0 если что
Аноним 25/01/23 Срд 16:21:57 #691 №2586723 
Макак конечно то еще даунич, но вот ++var это кринж. Только var++!
байт удался?
Аноним 25/01/23 Срд 16:26:07 #692 №2586728 
>>2586720
Какой командой в gdb смотреть дисассемблирование?
Аноним 25/01/23 Срд 16:28:00 #693 №2586730 
>>2586723
>это кринж
Кринж, это то, что ты высрал. Префиксная и постфиксная операции в выражениях выполняются по-разному.
Аноним 25/01/23 Срд 16:28:59 #694 №2586731 
>>2586728
disas main
Можешь через objdump посмотреть ещё.
objdump -d elfname
Аноним 25/01/23 Срд 16:29:40 #695 №2586733 
>>2586731
Чаю, анонче!
Аноним 25/01/23 Срд 16:34:24 #696 №2586743 
>>2586731
Можно в любую функцию залетать и смотреть дисассемблирование. Крутяк!! gdb это величайший инструмент для исследования!!!
Аноним 25/01/23 Срд 16:38:52 #697 №2586750 
>>2586743
Сам по себе голый гдб достаточно архаичен. Если реально часто в него лезешь рекомендую глянуть его модификации типа gdb-peda или gef.
Аноним 25/01/23 Срд 16:40:13 #698 №2586753 
>>2586750
Чаю, анонче! Надо поизучать.
Аноним 25/01/23 Срд 16:54:57 #699 №2586782 
Ебать вы развели холивар по UB, а на практике в итоге это проверили какой-то залетный.
Где-то полгода проверял эту хуйню на микроконтроллере, то есть все компилил арм компмлятором. Получалось 13, хотя на х86_64 всегда получалось 14 на прыщах, на винде тоже было 14, когда тестил в Visual Studio.
Мб это уже устаревшая тема и почти везде это пофиксили, хз.
Аноним 25/01/23 Срд 17:02:22 #700 №2586797 
>>2586720
>посмотреть дисассемблер в gdb
А почему просто не посмотреть .s в самом gcc?
Аноним 25/01/23 Срд 17:30:09 #701 №2586847 
>>2586797
Хз, как умею. А как твоим способом посмотреть?
Аноним 25/01/23 Срд 19:47:16 #702 №2587106 
>>2586704
>Хорошо, давай проще:
>>++i :значение 6
>Когда ты получил значение 6, куда ты сохранил это значение?
Никуда, это забота компилятора, а не программиста куда там чего сохранять или нет.
++i естественно присваивает сразу переменной, но это не имеет значения для сложения, которое берет ЗНАЧЕНИЕ, а не ССЫЛКУ на переменную. Ты реально такой тупой, что не можешь отличить значение от ссылки? Значение берется компилятором и хранится где ему угодно, оно отвязано от переменной, главное, что оно уже не меняется, иначе арифметика перестает работать. Иначе получаются мутирующие значения в зависимост от дальнейших аргументов, это непредсказуемая шизофазия, а не код.

> Уже сразу присвоил переменной i, которая стоит слева от знака равно?
Совсем того? Присвоение знаком равно идет результирующего значения, когда справа от знака равно всё посчитано. Компилятор может оптимизировать это как угодно, и присваивать хоть сразу, вообще поебать, потому что в первую очередь он должен генерить ПРАВИЛЬНЫЙ код, а только потом уже быстрый.
Аноним 25/01/23 Срд 19:55:54 #703 №2587111 
>>2586847
По ключу -S
Аноним 25/01/23 Срд 22:05:16 #704 №2587236 
>>2587106
Чел, иди проспись! Ты похоже незамерзайки объебался.
Аноним 25/01/23 Срд 22:15:06 #705 №2587247 
>>2585096
Нет, потому что алгоритм может быть таким:
1) Переменной i присваивается значение 5;
2) Первое слагаемое инкрементируется, теперь это 6;
3) Второе слагаемое инкрементируется, теперь это 7;
4) 6+7 = 14
Аноним 25/01/23 Срд 22:26:28 #706 №2587257 
>>2587247
>>2587106
Блять, поколение ЕГЭ, вам даже ассемблерную вставку вкинули, но вы, бляди питонические, высокоуровневые уёбки, продолжаете, объебашись незамерзайкой, писать какую-то хуиту.
mov [rbp-0x4], 0x5
add [rbp-0x4], 0x1 - ебанашки питонические, вы здесь видите адрес, куда добавляется единица?
add [rbp-0x4], 0x1 - а здесь, питонические уёбки, видите адрес?
mov eax, [rbp-0x4] - тупорылейшие бляди, вы здесь видите, откуда берётся значение и куда добавляется???
add eax, eax - безмоглые хуесосы из поколения ЕГЭ, вы понимаете, что это всё значит?
Аноним 25/01/23 Срд 22:43:03 #707 №2587275 
>>2587257
> ассемблерную вставку вкинули
Это баг компилятора, противоречащий синтаксису языка и здравому смыслу. Типичная багофича wontfix, которую приходится выучивать и обходить (не использовать такие конструкции) чтобы не уебаться об грабли.

Посмотрите на веруна, которому компилятор как библия, молится считая непогрешимым идеалом, своих мозгов-то нет.
Аноним 25/01/23 Срд 22:48:52 #708 №2587281 
image.png
>>2587275
>баг компилятора
Твой батя - долбоёб и баг компилятора, сучий ты уёбок!!!!

Короче, я обоссал, вас долбоёбов, и укатил в закат! Заебался отвечать на дегенеративную толстоту!
Аноним 25/01/23 Срд 22:53:30 #709 №2587286 
>>2587257
Шиз, ассемблерная вставка - это когда ты сам на ассемблере код вставляешь.
А стандарт с++ не говорит, какой ассемблер будет в результате в данном случае, и позволяет компилятору выдать такой код:
mov ax, 0x5
add ax, 0x1
mov cx, ax
add ax, 0x1 - ебанашка, увеличилось только второе слагаемое
add ax, cx
Обтекай.
Аноним 25/01/23 Срд 23:10:15 #710 №2587298 
>>2587286
Пфффф, я долбоёбам пол дня доказывал, что их погромисткий компилятор хранит значения одной и той же переменной в двух разных местах (в двух разных ячейках памяти, либо в двух разных регистрах) и только из-за этого, что их погромисткий компилятор занимает большую величину памяти, и получается в выражении i = ++i + ++i нечётное число, блять, один их этих уебанов, чтобы доказать мне, что их компиллятор не занимает доп. пространства и что он более оптимизированный, что это просто "последовательный", блять хуй пойми что, и чтобы доказать мне, что моя ассемблерная вставка неверна, приносит свою ассемблерную вставку, где чётко указано, что одно значение одной и той же переменной сначала хранится в регистре ах, а другое значение, блять, той же переменной, хранится в регистре сх, после чего два этих значения складываются.

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



Я в ахуе!! Это настолько толсто и дегенеративно, что мне, на самом деле, страшно, что у нас растёт вот ЭТО, и что вот ЭТО, пытается в язык программирования Си! ЭТО даже не пытается признать, что ОНО не право, ОНО просто приносит на похуй толстоту, и думает, что эта толстота прокатит!! Полный пиздец!!!!!!
Аноним 25/01/23 Срд 23:23:58 #711 №2587307 
>>2587298
Костян, ты и тут троллишь ньюфагов тупостью что ли?
Аноним 26/01/23 Чтв 01:53:14 #712 №2587384 
>>2586146
> Когда уже начнёте читать а не кряхтеть?
ты сам и не читал, открываешь блокнот, пишешь на си то, что там есть и получаешь итоговую прогу, компилишь тем же mingw
Аноним 26/01/23 Чтв 06:36:15 #713 №2587454 
>>2587286
> Си тред
> стандарт с++
Аноним 26/01/23 Чтв 11:04:03 #714 №2587634 
питоническая-шлюха1.jpg
>>2587307
>Костян, ты и тут троллишь ньюфагов тупостью что ли?
Аноним 27/01/23 Птн 07:28:20 #715 №2588922 
На вопрос то ответьте, 15 же может выдать ёпта?
Аноним 27/01/23 Птн 07:31:14 #716 №2588924 
>>2588922
Ой блядь. 12
Переменная и побочные действия это разные вещи и побочные действия могут происходить в любом порядке. Значит первое побочное действие присваивание в i 5 + 5 и потом 2 инкремента
Аноним 27/01/23 Птн 07:32:20 #717 №2588925 
>>2588924
>Переменная
Результат оператора имел в виду. Сорри за ошибки, всю ночь красноглазил.
Аноним 27/01/23 Птн 10:14:48 #718 №2589041 
>>2588924
Как она может 12 выдать? Она двенадцать выдаст только в том случае, если приоритет операции у сложения двух аргументов будет выше, чем у инкримента, т.е. это, либо приоритет бинарных операций преобладает над приоритетом унарных операций, либо просто у только одного сложения приоритет выше, чем у инкримента. Но это не побочное действие, а правило, которое зашито в компилятор. Если ты пользуешься не шизо-компиляторами, а нормальным компилятором, то он никогда не выдаст ни 12-ти, ни 13-ти.
Аноним 27/01/23 Птн 10:25:35 #719 №2589050 
image.png
какие подводные вкатываться в разработку ядра?
Аноним 27/01/23 Птн 10:33:31 #720 №2589058 
>>2589050
Если ты не будешь таким же тупорылым дегенератом, который доказывал, что его шизо-компилятор, который хранит одну и ту же переменную с разными значениями и в разных местах, лучше, чем gcc, то никаких подводных, потому что в любом случае обзаведёшься очень большим пакетом полезных знаний, которые сможешь применять где угодно, слегка модифицируя подход. Ядро это же база, от которой всё исходит.
Аноним 27/01/23 Птн 10:44:40 #721 №2589077 
Как узнать, что вам пишет погромизд? Этот даун всегда пытается впихнуть стену текста в одно предложение.
Аноним 27/01/23 Птн 11:01:31 #722 №2589101 
питоническая-шлюха1.jpg
>>2589077
>Как узнать, что вам пишет погромизд? Этот даун всегда пытается впихнуть стену текста в одно предложение.











этот обоссыш ещё и правила русского языка не знает
Аноним 27/01/23 Птн 14:31:36 #723 №2589464 
>>2589041
Ещё раз блядь, у инкремента приоритет всегда выше чем у сложения. И он возвращает ровно то же число. То что число ещё и увеличится на 1 это побочный эффект. Приоритет у них не определен вообще. Присваивание это тоже побочный эффект. Поэтому инкременты дали 5, 5 + 5 равно 10. А затем происходит два инкремента
Аноним 27/01/23 Птн 16:58:08 #724 №2589742 
>>2589464
Чел, блять, как же вы меня уже заебали, сука, два долбоёба, блять!!!!! Кто определяет, что у унарных операций приоритет выше? Если у унарной операции приоритет выше, то как это всё, что ты описал, своими долбоибическими ручками, блять, с побочными эффектами и хуектами долбобоибического твоего мозга, может получится? Ты просматривал, хоть, блять, краешком своего долбоибисеского мозга те ассемблерные вставки, что кидали аноны? Блять, долбоёб, мы даже эти две ассемблерные вставки особо подробно разобрали для самых долбоибических владельцев самых долбоибических мозгов, сука!!!!

Сука, тварь тупорылая, ответь на простой вопрос - кто определяет приоритеты операций?
Аноним 27/01/23 Птн 21:43:04 #725 №2590120 
Всем привет, какие есть специальности в ВУЗах, после которых можно работать на АСУТП или программированием всяких микроконтроллеров на предприятиях, автоматизации процессов на всяких заводах и тд? такое есть вообще у нас? Например взять специальность "Программная инженерия", кто-нибудь знает за неё? Что там изучают и как программу вообще посмотреть?
Аноним 27/01/23 Птн 22:19:05 #726 №2590149 
>>2590120
https://www.youtube.com/@narodstream552
http://www.stolyarov.info/books/programming_intro
https://www.livelib.ru/book/1000024557-fundamentalnye-algoritmy-na-c-chasti-1-4-analiz-struktury-dannyh-sortirovka-poisk-robert-sedzhvik
Аноним 27/01/23 Птн 22:47:11 #727 №2590181 
>>2590149
про 2 и 3 знаю, а вот первое реально годнота, спасибо. Но вопрос все же стоял о специальности
Аноним 27/01/23 Птн 23:07:38 #728 №2590194 
>>2590120
>специальности в ВУЗах, после которых можно работать на АСУТП
Инженегр АСУТП и называются, лол.
Аноним 27/01/23 Птн 23:09:54 #729 №2590196 
>>2590194
Ну значит у меня в городе таких просто нет, потому что по известным вузам посмотрел, ничего такого нет
Аноним 28/01/23 Суб 02:50:54 #730 №2590331 
>>2585104
>>2587384
Бумеры такой простой вопрос неосилили, нагуглил.
Статья https://www.transmissionzero.co.uk/computing/win32-apps-with-mingw/
Код https://github.com/TransmissionZero/MinGW-Win32-Application

>>2584908 - кун
Аноним 28/01/23 Суб 12:18:02 #731 №2590534 
>>2590331
> Бумеры такой простой вопрос неосилили
чел, у меня mingw в папочке валяется и notepad++ и я пишу трехмерные приложения на си
качать тут https://winlibs.com/
Аноним 28/01/23 Суб 12:48:11 #732 №2590572 
>>2590534
Набредал на винлибс, так и не понял зачем он если mingw тупо ставишь и всё компилит/работает
Аноним 28/01/23 Суб 14:46:04 #733 №2590700 
>>2590120
обычно предприятия просят любую инженерную корочку
Аноним 28/01/23 Суб 15:48:31 #734 №2590806 
>>2590120
У меня "информатика и вычислительная техника" специальность называется, но ТАУ и железки в том или ином виде присутствуют. Это от специализации зависит уже.
Аноним 28/01/23 Суб 19:21:48 #735 №2591166 
>>2590572
потому что там тупа скачиваешь даже и ничего не ставишь и поддержка MinGW-W64 получше
Аноним 30/01/23 Пнд 00:48:20 #736 №2592910 
error.PNG
error1.PNG
error2.PNG
Помогите с отладкой драйвера на винду(фильтр, не настоящее устройство). У меня он виснит на стадии deployment на target pc.
win 10, vs studio 2019, wdk под вин 10 на обоих машинах стоит идентичная версия. На третьем скрине обозначил желтым ту область которая с ошибкой на первом пике.
Что я делаю не так? Может в .inf файле что подредактировать. У меня там секции install и uninstall помечены как .NTamd64

Ну типа {Install.NTamd64] ну собсна такая платформа у системы на которой я тестирую драйвер и есть.
Аноним 30/01/23 Пнд 00:50:45 #737 №2592913 
>>2592910
Я гуглил эту ошибку кстати, там написаны общие причины что типа повержденные файлы программы, недостающие файлы и т.д. перезапись в памяти процесса и т.д. Мне кажется что раз программа завершается из за вероятно недостатка каких-то данных, то там скорее всего в .inf файле какая-то хуета. Там этих версий и стандартнов под каждую версию ногу сломит. Может есть здесь опытный анон что драйвера пишет под винду, да поможет.
Аноним 30/01/23 Пнд 01:09:20 #738 №2592946 
>>2592913
Хотя install тест гуд, .inf файл там впорядке скорее всегго.
Аноним 30/01/23 Пнд 17:21:31 #739 №2593551 
Screenshot.png
Мужыки, извините за дико тупой вопрос, но как понять в спеках (и других доках), какой тип значный/беззначный подразумевается в дескрипциях к полям по умолчанию? А то к некоторым полям указывается, что nonnegative number, но в остальнои большинстве говорится просто о 32битном значении.
Аноним 30/01/23 Пнд 17:22:27 #740 №2593552 
>>2593551
Суть вопроса - есть ли какието конвенции на этот щёт
Аноним 31/01/23 Втр 12:13:54 #741 №2594223 
>>2593551
отладкой выясни какие диапазоны
Аноним 31/01/23 Втр 13:34:12 #742 №2594320 
>>2593551
>какой тип значный/беззначный
А есть разница? Нолики и единички один хуй одинаковые.
Аноним 31/01/23 Втр 14:53:21 #743 №2594391 
>>2593551
Погугли сорцы, там ULONG
Аноним 31/01/23 Втр 15:38:54 #744 №2594426 
success.PNG
>>2592910
>>2592913
>>2592946

>>2592924 → (You)
Решил проблему.

Нужно удалить тестовый сертификат который выдан для драйвера на тестовом компьютере из store сертификатов в двух местах

certutil -f -delstore ROOT серийный номер сертификата
certutil -f -delstore TrustedPublisher серийный номер сертификата

После этого все заебумба работает.

Написал, мало ли кому пригодится. А то в интернете на форуме у многих людей темы так и остались открытыми висеть на многие годы. Короче это сертификатная проблема, решается просто перепропиской тестового сертификата для драйвера в двух хранилищах.
Аноним 31/01/23 Втр 16:16:12 #745 №2594471 
image.png
сап, нужна помощь. Только изучаю С. В чем я не прав?
Задача состоит в том, чтобы ввести двузначное число и помножить друг на друга его цифры. При запуске дает ввести число, но дальше прога просто выключается.
Аноним 31/01/23 Втр 16:24:45 #746 №2594489 
>>2594471
запусти в отладчике и проверь
Аноним 31/01/23 Втр 16:38:41 #747 №2594530 
>>2594471
Синтаксис scanf, не хватает &
Аноним 31/01/23 Втр 16:43:42 #748 №2594540 
>>2594530
благодарю, все заработало. А нахуя оно надо?
Аноним 31/01/23 Втр 17:16:24 #749 №2594590 
>>2594540
в отладчике посмотри, что происходит
Аноним 31/01/23 Втр 17:22:39 #750 №2594601 
>>2594489
>>2594590
И как ты себе представляешь ньюфага, пользующегося отладчиком?
Он скорее всего даже не знает что это такое.
Аноним 31/01/23 Втр 17:25:32 #751 №2594606 
>>2594601
>И как ты себе представляешь ньюфага, пользующегося отладчиком?
в отладчике посмотри
Аноним 31/01/23 Втр 17:34:10 #752 №2594619 
>>2594601
Хз, как этот долбоёб с отладчиком себе представляет то, что ты написал, но этот анон >>2594471 допустил явную ошибку по невнимательности, поэтому зря ты ему так просто подсказал, где он ошибся, - за такие тупые ошибки надо наказывать, пускай дрочится долго-долго. Либо, если невнимательный, то пускай уже сразу начинает изучать отладчик, тем более, скорее всего, этот анон изучает Си не под Линуксом, а в винде, следовательно, пускай накатит какую-нибудь идэешку со встроенным отладчиком и дрочит их (идэе с отладчиком) до опупения, пока сам не начнёт выявлять такие тупые ошибки.
Аноним 31/01/23 Втр 17:57:00 #753 №2594661 
>>2594619
Я знакомиться с С начал только вчера. Пишу на питоне в основном.
Аноним 31/01/23 Втр 18:19:07 #754 №2594683 
>>2594619
Да дебагер вообще не нужен. Не нужно хуйни писать просто, ну или фиксить ошибки в программе методом пристального взгляда. Немногие это понимают.
Аноним 31/01/23 Втр 19:19:55 #755 №2594748 
>>2594540
& это операция взятия адреса переменной (или можно сказать )
Ты передавал переменную по значению. А эта функция подразумевает, что ты передаешь адрес переменной, в которую будет записан результат.
Таким образом, она ожидает грубо говоря 0x612332b23, а ты ей передаешь 5 (или другой мусор, так как она неициализирована). Программа пишет данные по рандомному адресу, ОС ловит попытку записать вне разрешенной страницы и программа падает.
Аноним 31/01/23 Втр 19:20:32 #756 №2594749 
>>2594748
*или можно сказать указатель на
Аноним 01/02/23 Срд 08:11:46 #757 №2595168 
>>2594748
От души, анон
Аноним 01/02/23 Срд 14:36:39 #758 №2595513 
>>2594471
зачем вообще IDE древним пользоваться? при компиляции через консоль тебе бы сразу показали ошибку
Аноним 01/02/23 Срд 19:36:43 #759 №2596008 
image.png
Какой даун эту хуйню придумал? Это даже не смешно. Оправдывайтесь
Аноним 01/02/23 Срд 22:11:09 #760 №2596151 
>>2596008
Карго-культ ООП, хули.
Аноним 02/02/23 Чтв 20:44:02 #761 №2597345 
>>2596008
как меня заебали эти адепты кала под названием ооп, которые пытаются везде это впихнуть. Кстати видел как один человек на полном серьёзе говорил про инкапсуляцию в Си, и что хедеры можно интерфейсом считать..
Аноним 02/02/23 Чтв 21:58:09 #762 №2597440 
>>2597345
>как меня заебали автомобили, нет бы как раньше на ослах ездить
Аноним 02/02/23 Чтв 22:18:00 #763 №2597469 
image.png
>>2597440
Аноним 02/02/23 Чтв 22:35:33 #764 №2597488 
>>2597345
> хедеры можно интерфейсом считать..
Но ведь...
Аноним 03/02/23 Птн 14:01:36 #765 №2597954 
>>2597469
неактуально, ооп умирает и это факт, все новые языки которые выходят это процедурщина
Аноним 03/02/23 Птн 14:02:40 #766 №2597957 
>>2597954
мисснул
>>2597440
Аноним 03/02/23 Птн 15:04:45 #767 №2598005 
>>2597954
> все новые языки которые выходят это процедурщина
Например?
получается не зря я в сишечку вкатываюсь?
Аноним 03/02/23 Птн 15:37:07 #768 №2598022 
>>2597954
Все новые языки это джаваскрипт.
Аноним 03/02/23 Птн 19:34:31 #769 №2598270 
>>2598005
Например я преувеличил(напиздел), чтобы показать неважность ооп. Да забей никому это ооп не нужно, вон там го, раст, zig какой-нибудь все они процедурные. Даже если эти языки что я и перечислили используются 1.5 людьми, это уже показатель что ооп языки щас никто новые не делает, ну какие там щас ооп языки в моде? C#, Java(которая уже вот-вот), все остальное уже мертво давно
Аноним 03/02/23 Птн 19:36:30 #770 №2598272 
>>2598022
Ты прав, но и ему скоро придёт конец я гарантирую, пузырь уже лопнул осталось немного подождать и скоро javascript разработчики будут получать не больше офисных
Аноним 04/02/23 Суб 00:47:46 #771 №2598495 
>>2598270
Они не процедурные.
Аноним 04/02/23 Суб 01:24:01 #772 №2598499 
>>2598270
> ооп не нужно, вон там го, раст
там есть ооп
Аноним 04/02/23 Суб 08:04:40 #773 №2598570 
2023-02-04x07:49:44.png
ну привет анончик

я тут подумал что раз все мои манямирки разрушены, то хуле толку держатся за последний

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

принимайте пополнение так сказать..

ну и платиновый вопрос - посоветуй справочник на одну-две странички чтобы сходу въехать в это дерьмо
Аноним 04/02/23 Суб 09:03:59 #774 №2598584 
>>2598499
>там есть ооп
Тогда чем вас не устраивает ООП в Си, если там оно есть?
Аноним 04/02/23 Суб 09:47:33 #775 №2598603 
>>2598584
меня все устраивает, я же на нем работаю
Аноним 04/02/23 Суб 21:07:06 #776 №2599259 
Привет! как вкатиться в разработку под микроконтроллеры? В физике я вообще не силён и не знаю, сильно ли она нужна, если нужна, то какие темы? По поводу самих микроконтроллеров, что лучше для начала выбрать? Спасибо!
Аноним 04/02/23 Суб 23:38:50 #777 №2599427 
2023-02-04x23:37:06.png
>>2599259
привет братишка! я тоже решил вкатываться


но тут походу сидят чванливые престарелые пидарасы и просто ебливые додики дрочеры без задач


давай вкатываться вместе! :3
Аноним 05/02/23 Вск 02:07:57 #778 №2599485 
Что использовать, если нужно написать компилятор для простого языка под x86_64? libopcodes дроч какой-то без нормальной документации, в capstone при возможности удобно дизассемблировать код НЕ ПОДВЕЗЛИ ВОЗМОЖНОСТЬ ЕГО АССЕМБЛИРОВАТЬ, ну как так блять?
Пока приходит в голову только извращение с обёрткой функций с компилируемым кодом в форме inline assembly в какие-то макросы и дальнейшим его копированием без пролога/эпилога куда мне надо.
Аноним 05/02/23 Вск 06:41:25 #779 №2599537 
>>2599259
>сильно ли она нужна, если нужна, то какие темы?
нет, не нужна, если только конкретно твоя специфическая задача не завязана на этом
Аноним 05/02/23 Вск 06:43:09 #780 №2599538 
>>2599485
> Что использовать, если нужно написать компилятор для простого языка под x86_64?
лучше llvm
Аноним 05/02/23 Вск 09:10:03 #781 №2599577 
Анончики, как сделать массив из строк известной длины?
Аноним 05/02/23 Вск 09:23:34 #782 №2599586 
image.png
Все, понял
Аноним 05/02/23 Вск 12:02:22 #783 №2599698 
ПЕРЕКАТ: >>2599695 (OP)
ПЕРЕКАТ: >>2599695 (OP)
ПЕРЕКАТ: >>2599695 (OP)
Аноним 05/02/23 Вск 14:24:27 #784 №2599845 
>>2599427
И чё тут разбираться. Любой школьник за вечер осилит.
Аноним 08/02/23 Срд 13:29:17 #785 №2603460 
Ну так будет перекат или нет? Есть множество задачек, которые хочется обсудить, но боюсь, что в любой момент произойдёт перекат в треде и меня обделят вниманием. Поэтому как-то совсем не хочется активничать в этом треде.
Аноним 09/02/23 Чтв 00:53:29 #786 №2604151 
>>2603460
>Ну так будет перекат или нет?
А выше что?
comments powered by Disqus

Отзывы и предложения