|
из племени тумба-юбма
|
|||||||||||||||||||||
Выделение динамической памяти07.10.2021, 19:05. Показов 4590. Ответов 41
Метки нет (Все метки)
Недавно увидел на форуме(у одного из новичков), сомнительный способ создания динамических массивов:
0
|
|||||||||||||||||||||
| 07.10.2021, 19:05 | |
|
Ответы с готовыми решениями:
41
Выделение динамической памяти
Выделение динамической памяти в функции |
| 10.10.2021, 16:29 | |
|
Не по теме: TheCalligrapher, для Вас пусть будет так. Лишь бы это не было как в анекдоте про комсомольцев, которые делают ЭТО в гамаке и стоя, ибо они жить не могут без трудностей. :)
0
|
|
|
Вездепух
13229 / 6861 / 1827
Регистрация: 18.10.2014
Сообщений: 17,393
|
|||
| 10.10.2021, 18:18 | |||
|
История созадания второго издания известна: его в спешке вытолкнули в печать (судя по всему, по коммерческим причинам) буквально за неколько месяцев до выхода первого ANSI/ISO стандарта языка, а потом, поняв, что получилась "лажа", принялись в еще большей спешке задним числом исправлять книгу. До исправления примеров, где и можно увидеть манеру приводить результаты malloc, руки ни у кого просто не дошли. Про "нужно приводить" - как раз один из ляпов, который забыли вычистить. Второе издание K&R - это не трэш вроде какого-нибудь Штилдта, конечно, но тем не менее это довольно низкокачественое издание - с точки зрения production.
0
|
|||
|
из племени тумба-юбма
|
|
| 11.10.2021, 21:37 [ТС] | |
|
Короче вот книга: Язык программирования на C лекции и упражнения. Стивен Прата, вроде не старая(2015 год, 6е издание). Но один фиг, использование malloc в примерах показано в древнем виде. Ощущение, что их просто перепечатывают, возможно добавляя что то новое, а старое не редактируют совсем.
0
|
|
|
|
||||
| 12.10.2021, 13:28 | ||||
|
0
|
||||
|
Модератор
12844 / 7593 / 1766
Регистрация: 25.07.2009
Сообщений: 13,981
|
|||
| 12.10.2021, 16:24 | |||
0
|
|||
|
Модератор
12844 / 7593 / 1766
Регистрация: 25.07.2009
Сообщений: 13,981
|
|
| 12.10.2021, 19:45 | |
|
0
|
|
|
Вездепух
13229 / 6861 / 1827
Регистрация: 18.10.2014
Сообщений: 17,393
|
||||||||||
| 13.10.2021, 00:34 | ||||||||||
Сообщение было отмечено CoderHuligan как решение
РешениеРаздел 6.3 стандарта языка описывает семантику преобразований, когда уже известно, что преобразование будет выполняться, но 6.3 ни слова не говорит о том, когда эти преобразования будут или не будут выполняться. Это раздел никак не гарантирует, что эти преобразования будут выполняться неявно. Из того, что преобразование описано в 6.3 совсем не следует, что оно относится к допустимым неявным преобразованиям. Об это открытым текстом написано в начале раздела
В стандарте языка С нет аналога "стандартных" (то есть неявно выполняемых) преобразований из С++. Чтобы понять, что будет, а что не будет делаться неявно, нужно лезть в описание конкретного оператора, как сказано в цитате выше. --- Правильный ответ в данном случае надо искать именно в описании оператора присваивания (эти же правила распространяется и на инициализацию) Сначала надо проверить ограничения простого оператора присваивания http://port70.net/~nsz/c/c11/n1570.html#6.5.16.1
Вот именно благодаря этому мы и можем присваивать void * в любой указательный тип без выполнения явного преобразования. А не благодаря 6.3. С точки зрения корректности кода 6.3 тут ни при чем вообще.
1
|
||||||||||
|
Модератор
12844 / 7593 / 1766
Регистрация: 25.07.2009
Сообщений: 13,981
|
|||||
| 13.10.2021, 00:58 | |||||
0
|
|||||
|
Вездепух
13229 / 6861 / 1827
Регистрация: 18.10.2014
Сообщений: 17,393
|
||||||||||||||
| 13.10.2021, 01:53 | ||||||||||||||
|
Эта фраза ни разу не означает, что вы имеете право написать в коде
Эта фраза даже не означает, что вы имеете право написать
Под "некорректным" я имею в виду нарушения constraints: некорректный с точки зрения языка код, т.е. "некомпилируемый" код. В приведенной вам цитате (как и во всем разделе 6.3) описывается семантика процесса преобразования типов, то есть их поведение во время выполнения. Раздел 6.3 не содержит никаких constraints вообще, т.е. к корректности кода этот раздел никакого отношения не имеет никаким боком. Как ясно написано в начале раздела 6.3 за соображениями неявной применимости преобразований нужно лезть в описания конкретных операторов. Я показал выше, что именно имеется в виду. Рука-лицо... Сколько усилий уже потратили на этот 6.3.. Но все как об стенку горох. Простая вроде бы тема... Кроме как нежеланием учиться я такое объяснить не могу.
0
|
||||||||||||||
|
Модератор
12844 / 7593 / 1766
Регистрация: 25.07.2009
Сообщений: 13,981
|
|||||||||||||||||
| 13.10.2021, 03:49 | |||||||||||||||||
![]()
1
|
|||||||||||||||||
|
Вездепух
13229 / 6861 / 1827
Регистрация: 18.10.2014
Сообщений: 17,393
|
|||||
| 13.10.2021, 04:35 | |||||
! Ничто не помешает. Кто сказал, что "помешает"? Так можно. Код корректен, разумеется. Но речь-то идет о том, что это "можно" вытекает совсем не из 6.3. Речь идет о том, что 6.3 к "нельзя/можно" вообще никаким боком не относится. На вопросы "нельзя/можно" в языке С отвечают 1) синтаксис и 2) constraints. В разделе 6.3 нет ни слова ни о синтаксисе, ни о constraints. Ваши инициализации корректны потому, что они удовлетворяют constraints из 6.5.16/1 (по ссылке из 6.7.9/1). Именно 6.5.16/1 говорит "можно". Я веду речь только об этом. Вы, я вижу, совершенно не врубаетесь, о чем идет речь. И, так как в теме ничего сложного нет, данное "неврубание" я могу объяснить только нежеланием учиться.
0
|
|||||
|
Модератор
12844 / 7593 / 1766
Регистрация: 25.07.2009
Сообщений: 13,981
|
||
| 13.10.2021, 11:27 | ||
|
https://youtu.be/h0ntX3bDoOI?t=60
1
|
||
|
|
|
| 13.10.2021, 14:01 | |
|
0
|
|
|
из племени тумба-юбма
|
|
| 13.10.2021, 14:41 [ТС] | |
|
Мне так порой кажется, что все эти стандарты языков, написаны для отельного круга людей - разработчиков. Потому, что в этих многостраничных рукописях, что то конкретно понять, могут только люди из города Зион. Для рядового программиста, вполне хватит разных справочников и вовсе не обязательно знать эти замысловатые стандарты. Хуже, или лучше от того, что прочитал программист стандарты, или не прочитал, он не станет в любом случае. И познаний не прибавится, если ничего не поймет из написанного. Главное, что нужно знать, это нововведения и изменения, пришедшие с новым стандартом.
Вот даже вполне понятный вопрос этой темы, выливается в разные недопонимания и споры, с отсылками на разные пункты стандарта. Почему в выпусках новых стандартов, нет краткой информации обо всех нововведениях и изменениях? Тогда бы не пришлось тыкать носом в разные пункты, а указать на нововведения и все.
0
|
|
|
|
|||
| 13.10.2021, 16:40 | |||
|
0
|
|||
|
Вездепух
13229 / 6861 / 1827
Регистрация: 18.10.2014
Сообщений: 17,393
|
||||
| 13.10.2021, 18:31 | ||||
Еще раз: речь в данной теме шла не о том "может ли приводиться", а о том, что "будет ли неявно приводиться", т.е. о том "разрешит ли компилятор неявное приведение". Это совершено разные вещи. Раздел 6.3 не имеет никакого отношения к разрешению и запрету именно неявных приведений. Раздел 6.3 вообще не имеет никакого отношения к разрешениям и запретам - он лишь описывает семантику. Я уже приводил красноречивый пример выше (который вы почему-то назвали "путающим"): раздел 6.3 говорит, что целое число "может приводиться" к указательному типу. Это говорит лишь о том, что в языке С определена семантика такого приведения. Это, однако, совершенно не значит, что такое приведение будет выполняться неявно. Нет, не будет. В языке С нет неявного преобразования целого к указателю. Явное же преобразование - делайте на здоровье. Эта путаница, т.е. необоснованное верование в то, что 6.3 якобы следует воспринимать как разрешение на неявные преобразования, в свое время была настолько распространена, что в С99 даже решили добавить 6.5.4/3
0
|
||||
|
из племени тумба-юбма
|
|||||||
| 12.03.2023, 07:23 [ТС] | |||||||
|
Решил вспомнить правила создания динам.массивов в С и вот увидел совет от TheCalligrapher
0
|
|||||||
|
Вездепух
13229 / 6861 / 1827
Регистрация: 18.10.2014
Сообщений: 17,393
|
||
| 12.03.2023, 07:25 | ||
?Нет, это у вас теперь ошибка. Правильно именно так, как изначально написано у меня.
0
|
||
|
из племени тумба-юбма
|
|
| 12.03.2023, 07:46 [ТС] | |
|
TheCalligrapher, ок, соглашусь.
Но ведь для оператора sizeof(), всегда указывается выражение в скобках, у вас почему без скобок и почему это правильно? Не понимаю.
0
|
|
| 12.03.2023, 07:46 | |
|
Выделение динамической памяти для массива с последующей инициализацией Алгоритм выделение динамической памяти под переменные различного типа Выделение динамической памяти для двумерного массива с посдедующим изменением его размера Вектор, утечка памяти, функция создания и выделение памяти Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Nekobox - outbounds[0].transport: unknown transport type: raw
damix 01.10.2026
Фикс ошибки
Правым кликом по серверу -> отладочная информация -> edit
Заменить "net": "raw", на "net": "tcp",
Нажать кнопку reload.
|
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js.
В помощники взял Яндекс-Алису.
Было создано три зала на разные интересы.
исторические и ретро
сериал Хичкок. . .
|
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
|
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#.
Название изменил на ColorStep.
Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
|
|
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами:
- ВидТО (СправочникСсылка. ВидыТО);
- ВидГСМ. . .
|
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала.
Ниже прикреплён. . .
|
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F
Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU.
Опрашиваются регистры. . .
|
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка:
Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
|