Программирование

Ответить в тред Ответить в тред
C Programming Language #64 /clang/ Аноним # OP 14/10/20 Срд 19:41:31 18305131
C Propaganda.jpg 1965Кб, 2000x2610
2000x2610
Тред, посвященный прародителю всех С-подобных языков и по совместительству единственному идеальному и всесторонне годному средству программирования как на системном, так и на прикладном уровне.

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

Что читать:

- 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 (драфт)
- Черновик стандарта ISO/IEC 9899:202x (C2x): http://www.open-std.org/jtc1/sc22/wg14/www/docs/n2479.pdf (февраль 2020, с диффами)

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

- Очевидный GCC.
- clang: оче годно, батя рекомендует.
- Intel C++ Compiler: оптимизации, тысячи их.
- Visual Studio 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://github.com/kozross/awesome-c

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

- https://godbolt.org/ - Compiler Explorer позволяет посмотреть выхлоп компиляторов для введенного куска кода (больше полусотни разных версий компиляторов).
- http://cdecl.org/ - С Gibberish ↔ English помогает читать сложные сишные декларации.

Прошлые треды:

- №61: https://arhivach.net/thread/610541/
- №62: https://arhivach.net/thread/616070/
- №63: https://arhivach.net/thread/623165/ >>1818156 (OP)
Аноним 14/10/20 Срд 20:07:43 18305342
Хочу в новом стандарте бесконечную память, чтобы делать new и не проверять на ноль.
Аноним 14/10/20 Срд 20:19:55 18305503
>>1830541 →
The C++ standard guarantees that it is legal to use a null pointer in a delete-expression (§8.5.2.5/2). However, it is unspecified whether this will call a deallocation function (operator delete or operator delete[]; §8.5.2.5/7, note).

If a default deallocation function (i.e. provided by the standard library) is called with a null pointer, then the call has no effect (§6.6.4.4.2/3).

Аналогично в С для вызовы free.
Аноним 14/10/20 Срд 20:20:28 18305514
>>1830534
Не проверяй. Если ты не ембеде, то у тебя в системе всё равно memory-overcommit включён и NULL никогда (почти) не будет.
Аноним 14/10/20 Срд 20:21:39 18305525
>>1830550
Я, оказывается, промахнулся тредом.
Сорян.
В любом случае, требования стандарта в этом плане одинаковые.
Аноним 14/10/20 Срд 20:23:33 18305576
image.png 29Кб, 702x148
702x148
Аноним 14/10/20 Срд 20:47:33 18305967
Ну-ка, как обнаружить переполнение при сложении 2-х long? Машина с дополнением до двойки.
Аноним 14/10/20 Срд 20:55:57 18306098
Аноним 14/10/20 Срд 21:26:54 18306329
>>1830609
Это только для беззнаковых.
Аноним 14/10/20 Срд 21:30:14 183063510
>>1830632
Да.
Я только с беззнаковыми и работал.
Для знаковых надо определять возможность переполнения до сложения.
Аноним 14/10/20 Срд 22:17:55 183068311
>>1830596
в интернете есть код проверки, возьми там
Аноним 14/10/20 Срд 22:23:23 183068612
>>1830534
У тебя 0 может вылезти из-за фрагментации памяти. Поэтому все же надо бы придумать дефрагментатор оперативной памяти
Если ты точно уверен насчёт использования памяти своей программой - пиши свой аллокатор памяти на базе mmap и madvise.
Аноним 15/10/20 Чтв 00:29:51 183073713
>>1830686
> Поэтому все же надо бы придумать дефрагментатор оперативной памяти
Только через managed возможно. В противном случае невозможно. Да и не нужно, пока есть страничная организация памяти.
Аноним 15/10/20 Чтв 04:26:45 183081314
>>1830737
> Да и не нужно, пока есть страничная организация
Это 64 бита 48 бит хватит всем. А в 32-битных ОС есть проблема фрагментации адресного пространства, особенно со всеми этими рандомизациями.
Аноним 15/10/20 Чтв 05:10:36 183082115
>>1830813
Пойми простую вещь - дефрагментация кучи невозможна, поскольку "дефрагментатор" не имеет понятия об указателях на выделенную память. Двигать блоки в памяти не проблема, но нет средств чтобы сообщить об этом программе, которая запрашивала память. При любой попытке склеить свободные фрагменты в куче, указатели в программе сразу станут невалидны и всё рассыпется.

Если тебя так волнует проблема фрагментации, пиши свою обёртку над malloc и free и добавь абстракцию, которая из нескольких фрагментов будет эмулировать непрерывный блок памяти.

Аноним 15/10/20 Чтв 05:16:50 183082816
>>1830821
В Wolfenstein 3d была дефрагментация - у них было так что мог быть только один указатель на каждый блок памяти, указатель на этот указатель хранился в заголовке блока, соответственно дефрагментатор мог его обновить.
Аноним 15/10/20 Чтв 06:06:34 183085717
>>1830821
> Пойми простую вещь - дефрагментация кучи невозможна
Так я с этим и не спорю. Я сказал, что проблема фрагментации есть. Хотя если куски не очень большие, менеджер кучи использует всякие пулы для объектов примерно одного размера, и сильной фрагментации не возникает. Вот когда mmap() вручную, там да, там можно намапить так, что потом память есть, а адресов нет.

>>1830828
В винде были Local/GlobalAlloc(), они возвращали хэндл, который программы и хранили вместо указателей. А для получения "реального" указателя требовалось сделать явный Lock(), который ставил блоку флаг, что на данные есть живые указатели. По Unlock() флаг убирался, и после этого система могла двигать блок как ей угодно безо всяких последствий (пользовательских указателей нет, внутренний указатель на блок в таблице хэндлов обновляла сама система). Сейчас апи остались (для совместимости), но ничего никуда уже не двигается, флаг стоит перманентно.
Аноним 15/10/20 Чтв 07:51:27 183088418
.jpg 11Кб, 480x360
480x360
>>1830817 →
> лямбду калбэк поинтером в сишную библиотеку с выкидыванием прерывания
А в обычном си вообще есть ловушка исключений?
Аноним 15/10/20 Чтв 09:17:57 183090519
>>1830884
> лямбду калбэк поинтером в сишную библиотеку
Все таки оказалось что полноценно с видимостью переменных внутри текущей функции - нельзя, то есть использовать тут лямбды и смысла тогда нет.
Аноним 15/10/20 Чтв 11:03:50 183097120
>>1830857
Решение с Lock/Unlock мне нравится. В этом что-то есть.
Возьму на заметку.
И ещё аргумент Exclusive в функции Lock не помешает - если TRUE то критическую секцию включить, если FALSE то подсчёт ссылок.

Аноним 15/10/20 Чтв 13:49:49 183115121
>>1830857
В PalmOS что то подобное тоже было.
15/10/20 Чтв 14:00:11 183116622
>>1830686
>>1830828
>>1830813

Дефрагментатор, съеби в свой /гд/ач и сосите там с гондотей друг другу хуйцы.

Здесь серьёзные люди общаются.
Аноним 15/10/20 Чтв 14:01:41 183116823
>>1831166
Не надо мне ничего сосать, я натурал
Аноним 15/10/20 Чтв 14:02:02 183116924
>>1831166
>С-тред
>серьёзные люди
Аххахахаха.
Аноним 15/10/20 Чтв 14:22:44 183119125
Лишний indirection, дебаф производительности.
Аноним 15/10/20 Чтв 16:44:28 183133126
>>1830596
Это отчасти философский вопрос, или если угодно архитектурный - а что ты будешь делать, если переполнение произошло? Значит у тебя что то не то с данными, а значит надо было валидировать их заранее.

А так - логика простая.
Во-первых, переполнение будет только если знаки у обоих равны.
Во-вторых, в таком случае переполнение будет при условии a+b > LONG_MAX
Что можно переписать как a > LONG_MAX-b
(Переполниться это вычитание не может, т.к. a>0 и b>0, т.о. LONG_MAX-b >= 0)
Это для положительного случая, для отрицательного аналогично
Условие переполнения a+b < LONG_MIN
Переписывается как a < LONG_MIN-b

Пример на байтах
-101 + -100 < -128
-101 < -128 - -100 (== -128+100 == -28) переполнение есть

-101 + -10 > -128
-101 > -128 - -10 (== -128+10 == -118) не меньше, поэтому переполнения нет.
Аноним 15/10/20 Чтв 17:16:51 183135427
>>1831331
> а что ты будешь делать, если переполнение произошло
Трапать или пересчитывать результат в бигнумах.
> логика простая.
Решение правильное, но громоздкое. Где битовые хаки?
Аноним 15/10/20 Чтв 17:52:17 183137528
>>1831354
>или пересчитывать результат в бигнумах.
Так считай сразу в "бигнумах".
long long для кого придумали?
Аноним 15/10/20 Чтв 17:56:28 183138329
>>1831354
> громоздкое. Где битовые хаки?
А сейчас же битовые хаки медленнее чем компилятор делает, не?
Аноним 15/10/20 Чтв 17:57:37 183138530
>>1831354
И трапы по моему тоже не работают в современных компиляторах.
Аноним 15/10/20 Чтв 18:01:37 183139331
>>1830596
Как вариант посмотреть в мануале проца наличие флагов для индикации переполенния при выволнении арифметических операций.
Аноним 15/10/20 Чтв 18:03:22 183139532
>>1831393
Если это x86, то 11 бит регистра FLAGS
Аноним 15/10/20 Чтв 18:21:42 183141433
>>1831393
Знаковое переполнение это UB (по умолчанию по крайней мере), не получится ли так, что ты выполняешь сложение, потом асмом проверяешь флаг, а компилятор выкинул сложение из за UB и ты глотаешь воздух?
Аноним 15/10/20 Чтв 18:29:47 183142234
>>1831414
Если проверку делать через флаговый регистр, то и складывать лучше в асме, потому что тебе никто не гарантирует, что между выполнением арифместичекой операции в коде и проверкой в асме компилятор не вставит какую-нибудь операцию, которая сбросит этот флаг
Аноним 15/10/20 Чтв 19:58:58 183149835
>>1831422
Ты не прав. Складывать лучше всего в бинарном коде.
Аноним 15/10/20 Чтв 20:15:43 183150536
Я недавно делал вот это >>1829511 →

Сама задача про криптографию и электронную подпись.
Производительность при переписывания лоу-левел части кода (математика, бигнума) с асма на С упала в десять раз.
В некоторой степени (но не только) из-за невозможности нормально работать с флагами, переполнением, производить умножение uint64_t на uint64_t с получением 128-bit результата без интринсиков, етц.
Аноним 15/10/20 Чтв 20:40:58 183151937
Аноним 15/10/20 Чтв 20:58:13 183152638
Аноним 15/10/20 Чтв 21:14:24 183153039
>>1831505
>при переписывания лоу-левел части кода (математика, бигнума) с асма на С упала в десять раз.

Цена за простоту кодирования и портабельность.
А зачем переписывал-то? Мог бы на каждую платформу заделать библиотеку на ассемблерне .
Аноним 15/10/20 Чтв 21:17:18 183153140
>>1831530
>А зачем переписывал-то?
На будущее не все платформы известны. Специализированную реализацию сделал очень быстрой, попросили к ней рядом добавить не специализированную, хоть и в ущерб производительности.

>Мог бы на каждую платформу заделать библиотеку на ассемблерне
Дальше если требования будут, то буду приделывать, да
Аноним 15/10/20 Чтв 23:18:23 183158141
>>1831393
>>1831395
Это тред си, вы дисквалифицированы.

Я в шоке: почему мне предлагают складывать long long? А если нет такого типа? А если надо обнаружить переполнение 64-битного сложения?
Аноним 15/10/20 Чтв 23:22:53 183158442
>>1831505
У тебя время подписи строго постоянное, я надеюсь?
Аноним 15/10/20 Чтв 23:27:38 183158743
>>1831581
>А если надо обнаружить переполнение 64-битного сложения?
Тебе тут уже ответов накидали на все случаи жизни, а ты всё горишь.
Аноним 15/10/20 Чтв 23:31:47 183158944
Привет, я хочу программировать роботов. Нагуглил информацию, что в 2020 всех роботов, по для дронов и авто пишут на мисра си. Погуглил, что такое си - гавно мамонта из 1980 года. Неужели светлые умы не придумали ничего более прогрессивного за это время? Поясните плиз, почему этот язык актуален и останется ли.

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

Спасибо
Аноним 15/10/20 Чтв 23:55:27 183159645
>>1831589
> почему
Это язык роботов, очевидно же.
Аноним 16/10/20 Птн 00:11:22 183160546
>>1831596
А как же Раст и си плюс плюс?
Аноним 16/10/20 Птн 00:39:32 183161147
>>1831605
Раст ещё слишком молодой.
Плюсы используются там, где они нужны.
Аноним 16/10/20 Птн 00:40:39 183161248
Аноним 16/10/20 Птн 00:41:44 183161449
>>1831589
А что в робототехнике появилось прогрессивного с 1980 года? Там же количество логики на уровне бота для кс1.6, написанного школьником 15 лет назад.
Аноним 16/10/20 Птн 00:45:42 183161550
Снимок.PNG 7Кб, 664x142
664x142
Блять, я жопу устал зашивать. Учусь по МакГрату 4 издание, редактору в аду отдельный котел за такое непотребство уготовлен, 3 или 4 раз натыкаюсь на ошибки в примерах. Башка пухнет, прохожу указатели на функции, готовое задание такое:

https://pastebin.com/Qcc5QW5V

То ли я дебич конченый, то ли действительно пример корявый, но gcc выдает хуйню на пике, скобки по всякому ставил, что он от меня хочет?
Аноним 16/10/20 Птн 00:46:58 183161651
>>1831614

Бешаные кекогерцы и, как следствие, возможности сложной обработки сигналов в рилтайме.
Аноним 16/10/20 Птн 00:48:27 183161752
>>1831615
>int caller ((int(*function), (int), int b);
У тебя здесь 4 открывающих скобки и 3 закрывающих. Так не бывает.
Аноним 16/10/20 Птн 00:51:03 183161853
>>1831616
Сервоприводам и прочей поебени кекогерцы не нужны. В этом печаль робототехники - пока остальная индустрия уже general AI проектирует, в робототехнике все те же шаговики, никаких тебе наномышц и йоба-композитов.
Поэтому даже если у тебя в роботе будет нвидиа джетсон с бегающей на ней нейронкой, для кручения двигателями все равно будет достаточно той абстракции, которую предлагает сишка
Аноним 16/10/20 Птн 00:52:56 183162054
изображение.png 3Кб, 662x66
662x66
>>1831617
По идее так должно быть, но один хуй пишет это
Аноним 16/10/20 Птн 00:55:01 183162155
>>1831620
Вряд ли. Пришли фотку книжки с этой строчкой
Аноним 16/10/20 Птн 00:55:03 183162256
изображение.png 45Кб, 684x448
684x448
Аноним 16/10/20 Птн 00:59:52 183162457
>>1831622
Самая первая скобка лишняя
int caller (параметры)
int caller (параметр1, параметр2)
int caller (параметр1, int b)
параметр1=int(*function)(int) - указатель на функцию под именем function которая принимает int и возвращает int
Аноним 16/10/20 Птн 01:07:26 183162758
изображение.png 13Кб, 851x235
851x235
Аноним 16/10/20 Птн 01:14:23 183163059
>>1831627
https://ideone.com/HAGtVb
Та вроде все работает, хотя и код странный, будто прошлись сканером по книжке, потом image to text(чем собственно и проебали все скобки, кое-где и лишние запятые есть), а потом переводили.
Аноним 16/10/20 Птн 01:27:28 183163260
изображение.png 1247Кб, 1200x628
1200x628
изображение.png 19Кб, 687x246
687x246
>>1831615
Этак говнина заработала, но сука, я опять наткнулся на ошибку в примере знак разыменования не с той стороны поставлен. Улетел в стратосферу с этого учебника, полет нормальный.
Аноним 16/10/20 Птн 01:31:36 183163661
>>1831630
Как конверится пдф я не вкурсе, но разве артефакты на скане не должны остаться? Во всяком случае в других учебниках ctrl+c/v не прокатывало, текст с лишним мусором вставлялся
Аноним 16/10/20 Птн 02:02:19 183164562
>>1831632
Чем такой учебник, лучше курсы на Ютубе от Кумара из Раджастана.
Аноним 16/10/20 Птн 08:51:22 183169763
>>1831645
>курсы на Ютубе от Кумара
наркоман штоле?
Аноним 16/10/20 Птн 10:36:53 183171964
>>1831615
А зачем ты ставишь скобки в прототипах?
Аноним 16/10/20 Птн 10:40:23 183172365
>>1831615
У тебя весь код по пизде написан. Учебник нормальный, просто ты не понимаешь, что делаешь.
Аноним 16/10/20 Птн 10:43:39 183172666
>>1831723
>Учебник нормальный

Это тот, в котором скобки не парные?
Это тот, в котором автор не додумался сделать typedef указателя на функцию?

Нахуй такие учебники и их авторов.
Аноним 16/10/20 Птн 10:46:18 183172967
>>1831726
Возьми нормальный учебник блеадь. Зачем тебе перевод? Я понял бы если бы ты читал какой нибудь учебник написанный русским автором.
Аноним 16/10/20 Птн 11:24:20 183175868
>>1831729
Двачую.
Тем более, все равно английский придется изучать. Особенно, если хочешь получить адекватную работу.
Аноним 16/10/20 Птн 11:45:06 183177069
>>1831697
А почему бы и нет? Заодно человек сможет написать дефрагментатор стека для нужд треда после таких онлайн курсов.
Аноним 16/10/20 Птн 13:41:40 183188270
>>1831729
>>1831758

i hope that I can write technical materials by myself.
That book is awful and must be burned.
Those, who promotes that book, must be burned too.
I beg your pardon for my English.
Аноним 16/10/20 Птн 19:14:22 183220671
>>1831615
>>1831632
Ёпта, да ты так нихуя не выучишь дружок. В тех скринах, что ты скидываешь очевидные синтаксические ошибки - если ты не смог их заметить и поправить - то тему ты очевидно разобрал абы-как.
Аноним 16/10/20 Птн 20:20:13 183225172
>>1832206
Синтаксические ошибки я пофиксил, с указателем в прототипе функции я затупил, и поставил лишнюю запятую. Но бля, как бывалый вкатывальщик (можете гнать ссаными тряпками, но учиться не возбраняется, НИ В ОДНОМ учебнике до этого, я не встречал таких грубых ошибок в пунктуации кода. Это же не задачник по багфиксам, тут базу по си дают, а тут эта срань.
Аноним 16/10/20 Птн 20:33:38 183226373
>>1832251
Нахуй ты читаешь десятый учебник подряд? Прочитай K&R и пиздуй ебашить код
Аноним 16/10/20 Птн 21:46:36 183230974
Если я использую free() на невыделенной malloc() памяти, будет ошибка?
Аноним 16/10/20 Птн 21:54:52 183231675
Аноним 16/10/20 Птн 22:04:04 183232976
>>1832309
UB, зависит от реализации
Аноним 16/10/20 Птн 22:28:24 183234077
>>1832309
free можно вызывать только с NULL или с тем указатем, который ранее был получен с помощью malloc (и только единожды).
Всё остальное — UB.
Аноним 16/10/20 Птн 22:59:05 183235178
аноны, привет
дело такое: хочу перейти из сферы микроконтроллеров в что-нибудь более серьезное а ля системное программирование
Вопроса два: насколько это востребованно в Мск и какой бы проект в портфолио ебануть, чтобы заинтересовать работодателя?
Спасибо
Аноним 16/10/20 Птн 23:19:32 183235479
>>1832351
> из сферы микроконтроллеров в что-нибудь более серьезное а ля системное программирование
Это не одно и то же?
Аноним 17/10/20 Суб 00:28:12 183239280
>>1832309
Менеджер памяти хранит свои данные по отрицательному смещению от указателя. Если ты ему скормишь рандомное число, он по отрицательному смещению найдет мусор и корруптит тебе кучу, в лучшем случае программа упадет
Аноним 17/10/20 Суб 02:12:01 183244981
>>1832392
Зависит от реализации. Причём не в ядре, а реализации malloc/free. В юниксах malloc изредка дёргаяет вызов sbrk().
Аноним 17/10/20 Суб 11:05:07 183252782
iu.jpeg 55Кб, 1280x720
1280x720
Олды помогите, нужен совет. Вот я щас сижу на кодварсе, да? И решаю задачу, одну, две и одну не осиливаю. Пишу всё на бумаге как положено, анализирую сначала че делать. Но попадается сука сложная задача, я не могу решить. Тупо пропускать её на следующий раз? Может я чего то не понимаю просто? Там же эти алгоритмы блять. Математика сука. А я в математике даунич.
Хотя вот была задача про прайм числа, я её решил с нуля. Оказалось просто. С помощью википедий.
Аноним 17/10/20 Суб 12:13:49 183255783
>>1832527
>Математика сука
Для пидоров. Решай нормальные задачи, приближенные к реальности.
Аноним 17/10/20 Суб 12:15:46 183255984
>>1832557
Куда мне блять реальные если я не могу даже эти решить? Тем более, они прокачивают мозг и помогают понять язык. Проверено уже.
Аноним 17/10/20 Суб 12:21:58 183256285
>>1832559
>Проверено уже.
Сотнями безработных маняматиков? Ну решай, хули.
Аноним 17/10/20 Суб 12:46:09 183256886
>>1832562
Иди нахуй даун. Про работу никто не спрашивал.
Аноним 17/10/20 Суб 12:51:06 183257287
>>1832568
Ну а хули тогда ноешь, ребенок?
Аноним 17/10/20 Суб 13:10:44 183258488
>>1832527
Ты просто тупой, не переживай
Аноним 17/10/20 Суб 13:11:23 183258589
>>1832572
Тебя уже один раз нахуй послали, еще раз хочешь?
Аноним 17/10/20 Суб 13:12:45 183258690
>>1832584
Бля ну ты тоже тупой, но что это меняет?
Аноним 17/10/20 Суб 14:25:46 183261591
>>1832559
>Тем более, они прокачивают мозг
Дебилу прокачивать мозг вредно. Просто дебил это еще ничего, а вот с прокачанным мозгом получается активный агрессивный дебил, от которого куча вреда сраньем, и ИТТ тред тому уже демонстрация.
Аноним 17/10/20 Суб 14:36:36 183262292
>>1832527
Математика прям жёстко в Си тебе не потребуется. Необходимо понимание основ и умение разобраться в математических моделях с интернета и закодить их.
Если ты смог решить задачу с простыми числами и закодить по описанию решето Эратосфена, то не все так плохо.
Аноним 17/10/20 Суб 16:22:58 183275293
>>1832351
Возьми L4/hazelnut и портируй на любимый МК.
Аноним 17/10/20 Суб 16:49:45 183279594
>>1832752
>Возьми L4/hazelnut и портируй на любимый МК
А ты не прост.
Где глянуть доку на hazelnut?
Аноним 17/10/20 Суб 18:16:34 183287495
Аноним 17/10/20 Суб 18:30:20 183288296
image.png 20Кб, 445x437
445x437
На выходе программа выводит ноль. В чем здесь ошибка? По условию программа должна выводить сумму кубов всех чисел, лежащих в промежутке [x ; y].
Аноним 17/10/20 Суб 18:33:32 183288897
>>1832752
реально хороший кейс что ли? я думал, что сейчас буду советы а ля НАПИШИ СВОЙ ОС, НАПИШИ ВИРТУАЛ МАШИН и тд
Аноним 17/10/20 Суб 18:34:57 183288998
>>1832882
> double pow(double x, double y);
Я думаю намек должен быть понят.
Аноним 17/10/20 Суб 18:45:38 183290099
>>1832889
не очень если честно
Аноним 17/10/20 Суб 18:50:12 1832906100
>>1832900
pow результат возвращает, а на кладет в первый аргумент
Аноним 17/10/20 Суб 18:55:09 1832916101
>>1832906
я все равно не понял, pow должен значение i возвести в третью степень, потом это значение прибавить к z и все. Объясни пожалуйста, где я не прав и как это пофиксить
Аноним 17/10/20 Суб 19:36:12 1832937102
>>1832916
pow(i, 3); возведет в третью степень и отбросит результат, так как ты его никуда не запоминаешь
Надо запомнить результат в i обратно
не буду я ж все за тебя фиксить
Аноним 17/10/20 Суб 19:38:21 1832940103
image.png 24Кб, 509x420
509x420
>>1832937
все равно выводит ноль
Аноним 17/10/20 Суб 19:41:56 1832942104
>>1832940
Код не читай
@
Сразу отвечай


Где счётчик i увеличивается? Какое начальное значение? У тебя оно равно мусору со стека. Таки результат pow() лучше сразу плюсовать к z как-то так: z += pow(i,3);.

Лабораторку в универе делаешь?
Аноним 17/10/20 Суб 19:49:42 1832954105
>>1832942
да, лабораторную
может в тг пройдем и объяснишь это?
Аноним 17/10/20 Суб 19:51:04 1832956106
Аноним 17/10/20 Суб 19:54:05 1832957107
>>1832956
а ты хочешь не только лабораторную обсудить?
Аноним 17/10/20 Суб 19:54:49 1832959108
Аноним 17/10/20 Суб 19:55:52 1832960109
>>1832954
Имел опыт помощи лабораторных, который сводился к таким подсказкам что не так. Закончилось плохо. Люди вроде и с мозгами нихуя не освоили, лучше сам изучай построчно свою программу и пытайся понять что ж не так, иначе результат будет хуёвыйне хочешь ведь быть неучем?
Аноним 18/10/20 Вск 00:43:21 1833199110
пацаны, реально ли к вам из питона перекатиться?
Аноним 18/10/20 Вск 00:51:50 1833204111
Аноним 18/10/20 Вск 00:54:21 1833205112
>>1833204
вот так просто? никакого тролина и тд?
а насколько тогда мои знания будут нужны?
Аноним 18/10/20 Вск 00:54:50 1833207113
>>1833205
А хуй знает. Смотря где ты будешь пытаться их применять.
Аноним 18/10/20 Вск 00:58:12 1833211114
>>1833207
не ну понятно что сам питон в системном нахуй не нужен
ну кроме как разве всяких сборочных скриптов
меня в уныние вгонять 0.1 вакансия по системному проганью
все так плохо или не там ищу? (я не про embedded)
Аноним 18/10/20 Вск 01:28:08 1833243115
>>1833211
Для того, чтоб найти работу, достаточно удачно воспользоваться одной вакансией.
Аноним 18/10/20 Вск 01:32:52 1833248116
>>1832615
Чел, когда тебе дебилы будут отвечать неправильно на вопрос, ты тоже будешь агрессировать. Я не спрашивал про работу или нужно ли мне этим заниматься, просто долбоебы начали отвечать не в тему на те вопросы которые не спрашивали, из-за чего делается вывод что это какие то долбоебы. Я знаю что мне нужно и как мне это делать, вопрос был в другом. Но мани начали плакать мол, ууу он дегенерат решает че то там не зоробатывает деньги но я этого как бэ ни знаю уууу он плахой.
>>1832622
Спасибо. Я кстати знаешь что заметил? Когда надо было закодить задачку с координатами, там понадобились знания икса и егрека. Тип расчитать расстояние которое нужно пройти за 10 минут и вернуться в точку из которой начал. Ты прав.
>>1832959
Хуй будешь?
Аноним 18/10/20 Вск 01:36:07 1833250117
>>1833211
> вакансия по системному проганью
>все так плохо или не там ищу?
Настоящий embedded, тот, который не Ардуино, это и есть системное программирование.

Но если тебе интересуют ОС, то ищи вакансии в МЦСТ, Базальте или подобных компаниях.

Но в целом в России это глухая тема. Если шаришь, то можешь перекатиться в Юго-Восточную Азию. В Китае и Корее тебя примут. Можно и в Японию, но сложнее. Это надо быть известным специалистом.
Аноним 18/10/20 Вск 01:36:26 1833251118
>>1833211
Вакансий много чел, много. В моем городе хоть и платят мало, но имеются. Судя по всему там немного то и надо работать за сотку.
Аноним 18/10/20 Вск 01:37:13 1833252119
>>1833250
Двачую про Китай, там он будет миллионером рмбишным.
Аноним 18/10/20 Вск 01:57:55 1833258120
Продолжаю искать: DO-178C.PDF (A и В тоже подойдут), DO-254.PDF, DO-385.PDF (пока некритично), ARINC-653.PDF.
Без смс и регистрации!
Аноним 18/10/20 Вск 02:18:52 1833263121
>>1833250
грустно, очень грустно
не очень хочу из рашки переезжать. А так видел похожие вакансии только в Яндексе, Касперском и (внезапно для меня) Баду
Аноним 18/10/20 Вск 02:21:18 1833264122
>>1833263
На апворке можешь всякие задания на патчинг ведра линукса поискать
Аноним 18/10/20 Вск 02:22:08 1833265123
>>1833264
серьезно? Апворк и системщина? я думал там только сайты сраные
Аноним 18/10/20 Вск 03:40:00 1833290124
>>1832622
>решето Эратосфена
Очко Тьюринга пусть закодит
Аноним 18/10/20 Вск 04:19:06 1833294125
>>1833265
И не такое аутсорсят
Аноним 18/10/20 Вск 04:25:18 1833295126
>>1833290
Отличная идея. А где можно инфу почитать?
Аноним 18/10/20 Вск 05:42:46 1833309127
>>1833290
И пропустить через 3 анальные корзины истины Сократа.
Аноним 18/10/20 Вск 05:45:05 1833310128
Помогите всунуть хуй в допу. У меня не получаеца.
Аноним 18/10/20 Вск 07:27:58 1833330129
>>1832557
Анон прости меня за грубость. Я шизик просто у меня нервы иногда сдают.
Аноним 18/10/20 Вск 19:10:26 1833715130
Пацаны, хочу вот начать контрибьютить в линукс кернел, но понимаю, что уровень пока не дотягивает
есть ли какие-нибудь похожие опен сорс системы, которые менее популярны и обладают меньшим комьюнити разрабов, но в которые ниже порог входа? Конечно круто, если это также системщина, но мб есть что-то иное интересное, где также было бы круто поучаствовать
Спасибо
Аноним 18/10/20 Вск 20:40:50 1833887131
>>1833715
>но в которые ниже порог входа?
Разве что Minix. Но не факт что Таненбаум принимает патчи.
Аноним 18/10/20 Вск 21:18:57 1833938132
Аноним 18/10/20 Вск 21:37:40 1833957133
>>1833715
Хуй будешь?
Все б хотели такой проект. Но их мало. Ищи по гитхабу рандомную ос или ядро на си.
И ссы на ебало любителям микроядер L4, они выблядки говноедских хуесосок.
Аноним 18/10/20 Вск 21:40:38 1833960134
Сыро тут как-то. Плесень вот расцвела -> >>1833957
Аноним 18/10/20 Вск 22:07:44 1833986135
>>1833957
бля иди нахуй вообще, шизик агрессивный
Аноним 18/10/20 Вск 22:11:21 1833987136
>>1833957
Чем тебе L4 не угодила, болезный?
Аноним 18/10/20 Вск 22:30:41 1833992137
>>1833960
Мать твоя с пизды расцвела
>>1833986
Сам катись впизду
>>1833987
Говно без задач
18/10/20 Вск 23:01:37 1834006138
Очередные непонятки
https://pastebin.com/FMV0xt8b

Компилируется без проблем, но при любом раскладе флаг вернет 1 , что за хрень
Аноним 18/10/20 Вск 23:02:35 1834008139
>>1833938
Почему бафомёт на маскоте ГНУ?
Аноним 18/10/20 Вск 23:21:36 1834017140
>>1834006
isdigit() return Value
A value different from zero (i.e., true) if indeed c is a decimal digit. Zero (i.e., false) otherwise.
Аноним 18/10/20 Вск 23:55:54 1834048141
>>1834006
for(i; i<6; i++) => for(i=0; i<6; i++)
Аноним 19/10/20 Пнд 00:25:49 1834062142
Первый раз писал на C, считай все выходные просидел над этим.
Прошу оценить и поставить звездочку указать на проблемы:
https://github.com/texhnolyzze/buddy
Думаю без CLion-а я бы еще долго над этим просидел (пиздец сколько до меня допирало, что void x -- это указатель на массив указателей).
Блин, после веба это прям глоток свежего воздуха лол.
Короче, хочу вкатиться в сишку, так как веб заебал и бизнес-логика заебала. Хочу программировать микроволновки и газовые котлы. Чтоб было ощущение, что занимаешься чем - то значимым. В общем нужен совет как найти работу C-программером, какой проект сделать и тд. Спасибо за внимание
Аноним 19/10/20 Пнд 00:27:13 1834064143
>>1834062
Блин, звездочки пропали, имелось ввиду void ∗∗x
Аноним 19/10/20 Пнд 00:39:34 1834071144
>>1834062
положи в репозиторий README.MD
и исходник сравнения скорости твоего менеджера памяти с либсишным.

Аноним 19/10/20 Пнд 01:43:28 1834086145
поцоны, на мой вопрос только божм агрессивный ответил какой-то
реквестую вопрос еще раз, сорян
Хочу вот начать контрибьютить в линукс кернел, но понимаю, что уровень пока не дотягивает
есть ли какие-нибудь похожие опен сорс системы, которые менее популярны и обладают меньшим комьюнити разрабов, но в которые ниже порог входа? Конечно круто, если это также системщина, но мб есть что-то иное интересное, где также было бы круто поучаствовать
Спасибо
Аноним 19/10/20 Пнд 01:45:11 1834088146
>>1834062
бля респект за переход
расскажи немного плз - у меня просто такая же тема: прогал на си - ушел в геймдев - хочу обратно,но ссу, что не возьмут
на чем писал? по чем осваиваешь си? какие планы?
Аноним 19/10/20 Пнд 01:52:33 1834090147
>>1834086
Хуй будешь?
И я б хотел такой проект, если найдешь - кидай сюда, всем /pr/ будем контрибьютить.
Главное чтоб не микроядро.
Аноним 19/10/20 Пнд 01:55:38 1834091148
>>1834090
если ты тот же хуесос, то со второй попытки ответ несколько лучше
Аноним 19/10/20 Пнд 01:58:36 1834092149
>>1834062
Интересная техника аллокатора.
Было бы здорово, если бы он был сделан lockfree для МТ приложений, не использовать calloccalloc хорош, просто было бы круто не юзать вообще левые аллокаторы памяти, ну и сделать свои malloc/realloc/calloc/free.
Ну и тест производительности с glibcшным аллокатором было бы интересно глянуть.

Подобный подход buddy memory allocator использует jemalloc, он lockfreeв дебри не лез, но работает будто без мьютексов написан и умеет по аренам память выделять, очень быстрый, дефолтный аллокатор в freebsd. Прикольно было бы и с ним сравнить.
Аноним 19/10/20 Пнд 02:02:06 1834093150
>>1834091
А я уже другой хуесос.
Хуй будешь? Будешь у меня сосать? А я тебе за это крутой проект скину. На си. С микроядром и windows/visual studio.
Аноним 19/10/20 Пнд 02:39:03 1834102151
Аноним 19/10/20 Пнд 02:48:31 1834107152
>>1834102
Не пали гондоту быдлу.
Аноним 19/10/20 Пнд 03:02:52 1834111153
>>1834102
Давно оно проще Linux?
Аноним 19/10/20 Пнд 06:03:32 1834126154
Есть массив, из него нужно взять два меньших числа и вернуть их сумму как результат.
Есть идеи как можно это сделать не используя сортинг? А ли к черту?
Аноним 19/10/20 Пнд 10:15:23 1834251155
>>1834126
Сделай за прохода для начала. Первый проход это поиск наименьшего. Второй проход - поиск наименьше, которое больше заданного числа. На этом этапе ты увидишь как свернуть поиск в один цикл.
Аноним 19/10/20 Пнд 13:22:22 1834456156
>>1834251
Из практической точки зрения сортингом будет лучше думаю, но ограничить при этом до двух итераций функцию сорта. Ибо лучший Варик с одним циклом это зачизить два начальных значения до максимальных по типу возврата и потом уже сравнивать, что не есть канон. Но это тем не менее хороший пазл.
Аноним 19/10/20 Пнд 14:10:28 1834485157
>>1834126
if(length == 2) return arr[0] + arr[1];

int min_a = max(arr[0], arr[1]);
int min_b = min(arr[0], arr[1]);

for(int i = 2; i < length; ++i) {
if(arr < min_a) {
min_b = min_a;
min_a = arr;
}
return min_a + min_b;
}
Аноним 19/10/20 Пнд 14:11:06 1834486158
>>1834485
Проебался со скобками, return min_a + min_b на строку ниже
Аноним 19/10/20 Пнд 20:26:17 1834841159
>>1834093
о долбаебик прилетел
ты как? уже все хуи пересосал? хуесосик
Аноним 19/10/20 Пнд 21:04:43 1834852160
Аноним 19/10/20 Пнд 21:24:14 1834860161
>>1834852
проверь что возвращает raise(babah);

The signals SIGKILL and SIGSTOP cannot be caught or ignored.

RETURN VALUE
signal() returns the previous value of the signal handler, or SIG_ERR
on error. In the event of an error, errno is set to indicate the
cause.
ERRORS
EINVAL signum is invalid.
Аноним 20/10/20 Втр 00:11:48 1834983162
>>1834852
https://man7.org/linux/man-pages/man7/signal.7.html
Судя по мануалу по 0 индексу нету никакого сигнала. И отловить соответственно его никак нельзя судя по всему. Вполне вероятно на других posix системах так же
Аноним 20/10/20 Втр 03:06:03 1835057163
>>1834486
Они чан, а что за функции max() и min()?
Аноним 20/10/20 Втр 03:48:00 1835059164
>>1835057
Хочешь функции, хочешь макросы. Выбирай чего душа желает.
Аноним 20/10/20 Втр 10:13:43 1835143165
>>1835059
А как они работают? Берут максимальное и минимальное число из массива?
Аноним 20/10/20 Втр 10:51:54 1835153166
>>1835143
Из двух аргументов.
Аноним 20/10/20 Втр 13:45:03 1835267167
>>1835143
#define max(x,y) (x>y?x:y)
#define min(x,y) (x<y?x:y)

Аноним 20/10/20 Втр 14:03:09 1835288168
>>1835267
Бля бро рейдж массива может достигать 0 - INT_MAX
Но ты попал в точку на счет INT_MAX.
Аноним 20/10/20 Втр 15:07:57 1835353169
>>1835143
Максимальное и минимальное из аргументов которые лежат на стеке.
Аноним 20/10/20 Втр 15:28:46 1835376170
>>1835288
Больно читать твои вопросы. Потому что нет понимания у тебя.
Макросы min и max это просто подстановки проверки на меньшее или большее число. Они сравнивают два простых значния.

Иди наверное в тред С++, там есть шаблоны min и max для массивов. В Си тебе придётся писать цикл, пробегающий по всем элементам масссива и сравниваюший каждый элемент с найденным наименьшим.
Аноним 20/10/20 Втр 15:53:35 1835406171
>>1835376
> Си тебе придётся писать цикл, пробегающий по всем элементам масссива и сравниваюший каждый элемент с найденным наименьшим.
Я об этом изначально подумал. А макросыч не понимаю всё равно, не дорос. Ну чуть-чуть, т.е это как шорткат, чтобы постоянно не писать if else?
Аноним 20/10/20 Втр 16:07:07 1835416172
>>1835406
Макросы обрабатываются препроцессором и в компилятор попадают уже в виде Си кода. Во многих случая это даёт оптимизацию на этапе препроцессора. И повышает читабельность кода.

В макросы можно помещать разные вещи, не только проверку.
Аноним 20/10/20 Втр 16:20:49 1835441173
>>1835416
Я еще до макросов не дошел. Я рак. По Прате на 12 главе малоки ток начал изучать.
Аноним 20/10/20 Втр 21:09:47 1835675174
>>1835353
> лежат на на стеке
Чак Мур, ты жив ещё?
Аноним 20/10/20 Втр 23:36:52 1835814175
Аноним 21/10/20 Срд 00:07:30 1835827176
>>1835675
Жив.
>>1835814
Да, надо бы отдефрагментировать стек.
Вообще считаю операционные системы без дефрагментации стека неполноценными. Они убивают производительность игр на корню отсутствием этой важной функциональности.
Аноним 21/10/20 Срд 01:13:25 1835851177
>>1835827
Сука, как же я ору с дефрагментации стека. Каждый раз вижу и не могу сдержать ржекич.
Аноним 21/10/20 Срд 01:55:02 1835855178
>>1835851
А что смешного? Вполне серьезная идея. Возьму и напишу для ядра Линукс патч с дефрагментацией стека. Буду под виртуальными страницами стека физические дефрагментировать.
Аноним 21/10/20 Срд 09:06:01 1835941179
Короче, стак это место куда программа складывает автоматические классы хранилища, да? Входим в блок функций, или лупа, создаем авто переменную и она складывается на стак, потом выходим из блока и эта переменная исчезает, если мы не объявим её статической?

А heap, это типа "кучка" из динамически выделенной памяти с помощью малоков и т.д ? Там нет порядка получается или как?

Далее есть еще литералы (строки присваемые) и статические переменные которым память выделяет сам компилятор?

Прата нормально объяснит далее по книжке, или покурить надо по теме материала?
Аноним 21/10/20 Срд 09:09:06 1835944180
>>1835941
До этого места не дошёл, но думаю что то типа зависит от конкретной реализации.
Аноним 21/10/20 Срд 09:12:39 1835945181
>>1835941
> Там нет порядка
Для тебя нет. Адреса получаются случайно.
Аноним 21/10/20 Срд 10:04:18 1835955182
>>1835945
>случайно
Как решит менеджер памяти в malloc.c. Он может быть и собственноручно написанным.
Аноним 21/10/20 Срд 11:02:57 1835969183
>>1835955
Не подскажешь, почему называется кучкой? Потому что адреса кучкуются? Или как? Я почитаю по теме, но любая помощь будет драгоценна. Плиз
Аноним 21/10/20 Срд 12:33:28 1836024184
>>1835941
> Короче, стак это место куда программа складывает автоматические классы хранилища, да? Входим в блок функций, или лупа, создаем авто переменную и она складывается на стак, потом выходим из блока и эта переменная исчезает, если мы не объявим её статической?
Если судить про язык Си, то на всё воля божья

> А heap, это типа "кучка" из динамически выделенной памяти с помощью малоков и т.д ? Там нет порядка получается или как?
В языке Си на подобное воля божья

> Далее есть еще литералы (строки присваемые) и статические переменные которым память выделяет сам компилятор?
И на это воля божья

> Прата нормально объяснит далее по книжке, или покурить надо по теме материала?
Да, но не может быть неправ, ведь на всё воля божья
Аноним 21/10/20 Срд 21:41:26 1836431185
>>1835855
Нет, ты должен дефрагментировать стек как он есть. Например, бесконечно рекурсирующая пара функций должна работать в конечном объеме. Эту задачу уже решили для Чикена и нормальных Прологов, так что вперёд.
dead per dead 21/10/20 Срд 22:22:10 1836467186
Подымите руку, кто способен сходу, не заглядывая в доку, написать КОД, отличающий snan от qnan?
Аноним 21/10/20 Срд 22:30:06 1836472187
>>1836467
Пришлось погуглить термины.
Аноним 21/10/20 Срд 22:42:40 1836480188
>>1836431

чёт я тебя не понимаю.
в схеме(в чикене, например) бесконечная рекурсия решается оч просто. У тебя каждый вызов функции создаёт новый энвайронмент (сопоставление символов реальным объектам), фика в том, что энвайронмент тоже нормальный объект (только тебе недоступный), потому. он может быть спокойно сожран обычным сборщиком суора. такие дела. никакой специальной дефрагментации стека не нужно.
Аноним 21/10/20 Срд 22:47:38 1836484189
>>1836480
Ты хочешь сказать, их сборщик мусора не дефрагментирует стек?
А не слишком ли много ты на себя берешь? Мертвые объекты - дырки на стеке. Между ними живые фрагменты.
Аноним 21/10/20 Срд 22:49:31 1836485190
>>1834062
Ох, двачую, анон.
Формошлеплю, а хочу ковырять железяки на Си. Ну, я рад, что не один такой, хех :)
Аноним 21/10/20 Срд 22:51:47 1836487191
уважаемые аноны, дайте плиз инфу где взять "Learn C the Hard Way". Не могу найти
с меня как обычно <3
Аноним 21/10/20 Срд 23:04:30 1836502192
>>1836487
Ты же понимаешь, что такая книжка - это не трудный путь, а очередное инфоцыганство? Что мешает тебе поставить Бсд с исходниками и ПОГРУЗИТЬСЯ В ЯЗЫК С ГОЛОВОЙ?
Аноним 22/10/20 Чтв 04:16:57 1836608193
>>1836431
Я кстати дошел до фрагментаций, но не могу её понять щас.
>>1836487
libgen.is
>>1836502
Ой да ну
>>1834062
Я щас параллельно изучаю Си с Пыхой. У меня нет денег на существование, а Си вакансию без образования я врятли найду, хотя попытаюсь, в треде отпишусь об успехах, до чего доведёт самообразование по Прате, Кернигану и куче книг по Си, алсо плюсах.
Думаю фрилансить делая людям форумы, сайты, магазины и параллельно заниматься тем, что люблю больше всего, Сишечкой.
Аноним 22/10/20 Чтв 04:55:37 1836611194
Где вы кодите? Виртуалка или прям в системе?
22/10/20 Чтв 06:11:57 1836619195
>>1836467
Ну я. А еще я знаю про pseudo-infinity и pseudo-NaN, которым не нашлось места в IEEE-754, но которые однажды мелькали в этих ваших компьютерах, и из-за этого кое-где их все еще приходится тащить.

>>1836611
Дай угадаю, ты воспринял всерьез шуточки про форматирование диска посредством UB в Си?
Аноним 22/10/20 Чтв 10:25:27 1836678196
>>1835969

> Не подскажешь, почему называется кучкой?

Потому что так перевели слово heap

А за "почему обозвали словом heap" так и за прочими похожими вопросами ща спалю годноту действенную методу.

Когда ты встречаешь английское слово и чувствуешь что вокруг него прямо таки вьются всякие контекстные мемасы и аллегории и что ты не догоняешь прикола, то заходишь в гугл, набираешь там это слово и, ВНИМАНИЕ, тыкаешь на вкладку картинки, после чего вдумчиво скроллишь увиденное.

В 70% случаев из 100 ты таким макаром увидишь подтекст того или иного слова как его воспринимает загадочная англосаксонская душа.

Второй способ (постоянное общение с носителями языкаи и перестройка внутреннего диалога на иностранный язык) более действенный - но требует заводить трактор и съебывать.
Аноним 22/10/20 Чтв 10:26:48 1836679197
>>1836619
Типа того. Вроде компилятор защитит меня от этого, верно? И утечки памяти не опасны на нубном уровне да? Я справшиваю в общем, я рак и мне нужно знать, смогу ли я случайно направив не туда указатель, или использовать малок, сломать систему?
>>1836678
>Потому что так перевели слово heap
Это я перевел. Мог бы и догадаться. Алсо можешь идти нахуй я понял что ты несущественную хуйню несешь.
Аноним 22/10/20 Чтв 10:30:34 1836684198
>>1835969
Потому что данные лежат неупорядоченные как куча говна, в отличие от статически размеченной памяти и стэка.
Аноним 22/10/20 Чтв 10:34:58 1836687199
>>1836684
>Потому что данные лежат неупорядоченные как куча говна
Лучший, лучшее объяснение.
Аноним 22/10/20 Чтв 10:37:03 1836689200
>>1836484

>дырки на стеке

Вот смотри, шиз, ты сейчас делаешь классическую ошибку гондоти из треда откуда ты сюда съебал и где тебя уже обоссали.

Обосравшись на ровном месте.

Дырок на стеке не бывает по определению, этого самого стека - у него как у структуры данных добавлять и убирать можно только с конца, причем с одного.

И вот по причине этой промашки тебе в место красивой, пусть даже жирной, демагогии придется начинать демедж-контрол путем врубания тупого гондоти.
Аноним 22/10/20 Чтв 10:43:31 1836694201
>>1836684
Это понятно, а от кого сам термин пошёл. кто первый его употребил.
Аноним 22/10/20 Чтв 10:45:24 1836696202
>>1836689
>Дырок на стеке не бывает по определению
Двачую. Я сначала подумал, что он имеет ввиду динамическую память.
Аноним 22/10/20 Чтв 10:45:35 1836697203
>>1836608
У тебя Прата нормальный скан? Счас до 6ой главы дошёл глаза потекли, так херово видно.
Аноним 22/10/20 Чтв 10:51:06 1836708204
pdf.png 283Кб, 1718x1168
1718x1168
Аноним 22/10/20 Чтв 11:10:00 1836719205
>>1836696

Это залетный мамкин тралль из /gd/, там он в треде движкосрачей урину ловил, вот теперь и сюда перебрался.
Аноним 22/10/20 Чтв 11:15:24 1836722206
>>1836689
>Дырок на стеке не бывает по определению,
Смотря что считать дыркой.
Например, если выделить достаточно большой массив на стеке и ни разу к нему не обратиться. Ни чтением, ни записью В таком случае несколько страниц памяти не будут замаплены в стек.
При условии что компилятор не оптимизирует неиспользуемый массив.

Ну это так, к слову. На самом деле я не понимаю что там надо оптимизировать и отношусь к этим предложениям как троллингу.
Аноним 22/10/20 Чтв 11:29:57 1836727207
>>1836722

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

>По улице идет старенькая бабушка (Б), рядом проходит пионер (П), подтянутый, бодрый, с барабаном. Бабушка громко чихает.
>П: - Будьте здоровы!
>Б: - Да, внучек, я здорова. А чихаю потому, что табачек нюхаю.
>П: - По мне, бабушка, Вы хоть хуй нюхайте, а пионер должен быть вежливым!


А никого не ебет что ты его не используешь - раз ты его выделил значит обязан лежать по условию контракта этой структуры данных, в противном случае контракт будет нарушен и стек перестанет считаться стеком.
Аноним 22/10/20 Чтв 11:37:35 1836734208
>>1836727

Вот, кстати, почему когда процессорам придумали виртуальную память, то аппаратную трансляцию и таблицу страниц им сделали, а дефрагментацию аппаратную нет, хотя уже в 70х и 80х были такие технологии и даже специальные процессоры-ускорители на них основанные.

https://en.wikipedia.org/wiki/Intel_8237

Аноним 22/10/20 Чтв 11:41:45 1836735209
>>1836734

Причем проблема эта действительно есть, именно из-за неё в AMD64 и позже в ARM появилась концепция больших страниц в 1GB, как раз для нивелирования фрагментации в тех случаях, когда традиционные мелкие странички засирали память.
Аноним 22/10/20 Чтв 12:16:59 1836768210
Как вы профи пишете вообще код на работе? Если для меня простые задачки это брейнфак, то как вы пишете кучу кода я не понимаю.
Аноним 22/10/20 Чтв 12:30:13 1836789211
>>1836768

На работе 99% задач это бойлерплейт и типовая рутина, только и всего.

А задачки нужны что бы искусственно раздувать конкурс для кандидатов.
Аноним 22/10/20 Чтв 12:59:54 1836814212
>>1836789
Ну понятно что олимпиады ниочем. Но это тоже самое что и знать математику, она не нужна вообще, как Линус Торвальдс говорит, но бэкграунд который она дает, развивает мышление, это имеет пользу.
Аноним 22/10/20 Чтв 13:26:35 1836843213
>>1836814
Математика не нужна ровно до тех пор когда она нужна.
Потом резко начинаются изобретения неэффективных велосипедов.
То же самое и с паттернами программирования и алгоритмами тащемта.
Аноним 22/10/20 Чтв 13:28:03 1836846214
>>1836689
Толсто. Дефрагментатор стека - пользователь юнити.
Аноним 22/10/20 Чтв 13:38:08 1836862215
>>1836843
То есть ты за программные задачки для развития мышления?
Аноним 22/10/20 Чтв 13:44:24 1836874216
>>1836484
Не дырки, а отверстия.
Аноним 22/10/20 Чтв 13:47:54 1836877217
>>1836846

Так один хуй оба шизы.

Айда к нам в тред, кста, там у нас сейчас гондотя интерполятор, графики интерполирует, доказывает что дроуколы ничего не стоят.
Настройки X
Ответить в тред X
15000
Макс объем: 40Mб, макс кол-во файлов: 4
Кликни/брось файл/ctrl-v
Стикеры X
Избранное / Топ тредов