↓
 ↑
Регистрация
Имя/email

Пароль

 
Войти при помощи
Verity Mage
18 января 2018
Aa Aa
#вопрос
Четвёртая строчка действительно необходима?


UPD. Сменил код на картинку кода.
18 января 2018
15 комментариев
Да. А как он ещё узнает, сколько памяти нужно?
Это что, попытка преобразовать число в его бинарное представление в виде строки?
Да, 4-я строчка необходима. И вызывающая сторона должна знать, что она должна высвободить память.
Ещё:
1. Порядок бит неправильный (обратный). Если передать 4 (0b100), то получится строка "001".
2. Если передать, допустим, 256 — будет попытка записи за пределами выделенной памяти (выделяется всего 8 байт).
это выделение памяти. r[i] это по факту обращение к ячейке памяти по адресу r со смещением i. Четвертая строчка назначает переменной r стартовый адрес и резервирует необходимое количество ячеек памяти, начиная с этого адреса. Если этого не сделать программа попытается обратится к области памяти, которая принадлежит непонятно кому. Вероятнее всего эта фигня скомпилится, но при запуске выдаст ошибку доступа к памяти
Ясно, благодарю. Почему-то казалось, что со строками и массивами символов это не надо.
Verity Mage, как раз с ними это и надо :)
Заяц Онлайн
Оригинально. А зачем такие сложности, такой код на практике бывает нужен?
Заяц
Си используется в том числе для программирования микроконтроллеров, где обращения к отдельным регистрам и блокам памяти обычное дело
*фронтендщик в шоке*
Bless, почему?
Verity Mage
Напоминает так не любимый мною Паскаль, который мы изучали в универе. Препод была женой ректора, и к программированию имела такое же отношение, как я к разведению горных троллей.
Bless, хек. Не, это плюсы.
ДНИЩE--ЫЫЫЫ
Verity Mage
скорее, чистый си
miragecoordinator, ну, в данном отрывке да. А вообще в той программе вкрапления плюсов были.
> Ясно, благодарю. Почему-то казалось, что со строками и массивами символов это не надо.

А где у тебя тут массив символов-то, еп?
char *r - указатель.

и да, не забудь освободить память потом.

или не выпендривайся, и пользуй char r[8], все равно код кривой, как мои извилины
Facensearo, хм, точно. Впрочем, это не важно - тот код я дописал и свою задачу он выполнил:)
ПОИСК
ФАНФИКОВ









Закрыть
Закрыть
Закрыть