169 похожих чатов

Здравствуйте. совершаю вот такую вещь: strcpy(line, (char)current_number); где current number —

неподписанный шорт, line — массив чаров. ругань следующая:
main.c:29:30: error: passing argument 2 of ‘strcpy’ makes pointer from integer without a cast [-Wint-conversion]
29 | strcpy(line, (char)current_number);
| ^~~~~~~~~~~~~~~~~~~~
| |
| char
In file included from main.c:6:
/usr/include/string.h:141:70: note: expected ‘const char * restrict’ but argument is of type ‘char’
141 | extern char *strcpy (char *__restrict __dest, const char *__restrict __src)
| ~~~~~~~~~~~~~~~~~~~~~~~^~~~~
make: *** [makefile:11: main] Error 1
что делать? я пока что не в полном объёме понимаю принцип работы указателей; кажется, в этом проблема.
помогите пожалуйста

13 ответов

71 просмотр

Предположу, что current_number это объект типа инт, тебе надо его распарсить в строку (хотя бы через sprintf), а не просто кастовать к чару (про тип объекта в аргументе тебе уже написали).

Roberto's-Ширгозиев Автор вопроса
BlackBloodyRabbit Rabbit
Предположу, что current_number это объект типа инт...

я писал выше, что это инт. спасибо за ваш ответ

Roberto's-Ширгозиев Автор вопроса
BlackBloodyRabbit Rabbit
Предположу, что current_number это объект типа инт...

то есть, необходимо сначала из куррент нумбера сварить чар, потом получить на него поинтер, а потом этот поинтер засунуть в strcpy? я правильно понимаю?

вы скажите высокоуровнево, что вы хотите сделать

Roberto's-Ширгозиев Автор вопроса
Maxim Filimonov
вы скажите высокоуровнево, что вы хотите сделать

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

Roberto's Ширгозиев
то есть, необходимо сначала из куррент нумбера сва...

Можно проще, я тебе написал sprintf. sprintf(str + strlen(str), "%hd", current_nymber); *Только надо память под изначальную строку выделять с запасом.

Roberto's-Ширгозиев Автор вопроса
BlackBloodyRabbit Rabbit
Можно проще, я тебе написал sprintf. sprintf(str +...

80, мне с запасом хватит. у неё длина всегда постоянна будет в итоге

Roberto's-Ширгозиев Автор вопроса
BlackBloodyRabbit Rabbit
Можно проще, я тебе написал sprintf. sprintf(str +...

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

Roberto's Ширгозиев
сделал вот так, столкнулся с проблемой: как очищат...

Чтобы очистить строку в си, достаточно в нулевой элемент записать 0

Roberto's-Ширгозиев Автор вопроса
BlackBloodyRabbit Rabbit
Чтобы очистить строку в си, достаточно в нулевой э...

почему-то не сработало. нашёл какой-то bzero, с ним всё получилось. странновато, что есть string.h, а есть strings.h всем спасибо, у меня всё получилось

Roberto's Ширгозиев
почему-то не сработало. нашёл какой-то bzero, с ни...

bzero это просто memset с байтом заполнения 0. Он просто в каждый байт строки записывает 0 (что вообще говоря бессмысленно, если речь идёт про си-строки)

Похожие вопросы

Обсуждают сегодня

Сообщение* в закодированном виде. То есть, просто сделать sendMessage?text=Привет бла-бла! не получится, надо в HEX переводить, и добавлять процент, типа такого: sendMessage?t...
КТ315
21
А случайно нет ли в паскале штатной возможности передать указатель и количество туда где array of в качестве аргумента?
zamtmn
25
Anyone here suffers from unexplained aural migraines, who would be up for talking for a bit? Doesn't *have* to be aural, but I am not asking about headaches, I mean actual mi...
Martin Rys
58
Только такой if ($modx->event->name == 'OnBeforeCartItemAdding') { $meta = $params['item']['meta']; $lang = $modx->getConfig('_lang'); // проверяем, задана ли опция i...
Multi Web
1
Всем привет. Испытываю проблемы в работе БД, а именно огромного роста логов, такого характера: 024-05-16 18:39:07 +05 sentry sentry [unknown] 1050169 7-1 app-sentry01.corp.ru>...
Alexey
2
Ну раз я пока тут, задам пару глупых вопросов. Зачем писать на ассемблере если компилятор довольно умный, а ассемблер много времени занимает? В каких прикладных задачах сейчас...
Максим Рябцев
20
Хм. А телеграм апи работают через HTTP?
The Bird of Hermes
14
Почему Telegram пишет, что объект media не найден, хотя на самом деле я его передаю? Делаю на urllib, без зависимостей, так надо. Вызываю метод sendMediaGroup с таким JSON: ...
Alexey S
1
Если подытожить: По мнению Розыча и Хемуля и др. - предпочтительно по возможности объявлять в секции имплементации потому-что: 1) Выше скорость компиляции 2) Не замусоривается...
notme
7
я не магистр хаскеля, но разве не может лейзи тип конвертнуться в не-лейзи запросив вычисление содержимого прям при инициализации?
deadgnom32 λ madao
100
Карта сайта