Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
Bad Lamer
Зарегистрирован: 23.09.2004 Сообщения: 61
|
Добавлено: Чт Сен 22 2005 13:45 Заголовок сообщения: массив -> строка |
|
|
Вот бывает такое... забывается простейшее. Получаю массив байт с помощью recvfrom (winsock), там строка, только без нуля в конце... что б ее вывести, естесственно нужен ноль... как его туда вставить? Пишу на "си" |
|
Вернуться к началу |
|
|
Hovrino
Зарегистрирован: 06.03.2003 Сообщения: 14 Откуда: Химки
|
Добавлено: Чт Сен 22 2005 16:01 Заголовок сообщения: |
|
|
1. realloc на 1 байт больше и дописываем ноль
2. слить в другой массив где место уже есть и дописать 0
ИМХО: первый метод красивей |
|
Вернуться к началу |
|
|
Aragaer
Зарегистрирован: 28.03.2005 Сообщения: 164
|
Добавлено: Чт Сен 22 2005 23:24 Заголовок сообщения: |
|
|
Делать recvfrom в буфер, который заведомо больше максимальной строки (хотя бы на 1). Добавлять \0 в байт, номер которого равен количеству полученных. _________________ Open your eyes.
And Awaken. |
|
Вернуться к началу |
|
|
Bad Lamer
Зарегистрирован: 23.09.2004 Сообщения: 61
|
Добавлено: Пт Сен 23 2005 21:10 Заголовок сообщения: |
|
|
Спасибо люди |
|
Вернуться к началу |
|
|
Aragaer
Зарегистрирован: 28.03.2005 Сообщения: 164
|
Добавлено: Сб Сен 24 2005 01:59 Заголовок сообщения: |
|
|
Кстати, еще один простой фокус - сначала создать массив большего размера, потом забить его весь нулями (через memset - самое оно), а потом читывать туда что угодно. Первый \0 и будет концом строки. _________________ Open your eyes.
And Awaken. |
|
Вернуться к началу |
|
|
|