![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Форумчанин
Регистрация: 05.06.2007
Сообщений: 529
|
![]()
Здравствуйте! Как можно сделать объем массива именно такой, сколько информации поступает?
получаю информацию от клиента recv(connection,a,1000,0); но она не всегда равна 1000 байт... может послать меньше... мне нужно что бы массив a[] был такого размера, сколько послано информации, а не так что сначало он равен 1000 - a[1000]; а потом из него вычетается лишнее... Последний раз редактировалось Артэс; 05.09.2009 в 15:09. |
![]() |
![]() |
![]() |
#2 |
Участник клубаДжуниор
Регистрация: 23.08.2008
Сообщений: 1,616
|
![]()
может sizeof(a)?
pushl $0x18E3DF6B
call ICQ |
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 10.05.2009
Сообщений: 21
|
![]()
сделать не массив ,а указатель
например int *a=new int[1000]; |
![]() |
![]() |
![]() |
#4 |
Форумчанин
Регистрация: 05.06.2007
Сообщений: 529
|
![]()
массив то динамичный
recv(connection,a,1000,0); a = new char[sizeof(a)]; так что ли?) |
![]() |
![]() |
![]() |
#5 |
Форумчанин
Регистрация: 05.06.2007
Сообщений: 529
|
![]()
можно подробнее про указатели? не совсем понимаю... данные будут поступать через указатель в массив?
|
![]() |
![]() |
![]() |
#6 | |
Участник клуба
Регистрация: 15.07.2008
Сообщений: 1,933
|
![]() Цитата:
|
|
![]() |
![]() |
![]() |
#7 |
Форумчанин
Регистрация: 05.06.2007
Сообщений: 529
|
![]()
я получаю данные от браузера... просто данных меньше чем массив... а delete []a; и потом создание массива по новой не помогает так как надо... если данных пришло еще меньше, чем в прошлый раз... то со временем можно наблюдать после нужных данных, остатки бывших данных, и потом пропуски строк... и в конце концов программа вообще крашает... вот я и хотел что бы массив был 1 к 1 с объемом данных.
|
![]() |
![]() |
![]() |
#8 |
Участник клуба
Регистрация: 15.07.2008
Сообщений: 1,933
|
![]()
recv() возвращает количество полученных байт. Делайте так:
Код:
|
![]() |
![]() |
![]() |
#9 |
Форумчанин
Регистрация: 05.06.2007
Сообщений: 529
|
![]()
знаете, а помогло! спасибо)
|
![]() |
![]() |
![]() |
#10 |
Eclipse Foundation
Старожил
Регистрация: 19.09.2007
Сообщений: 2,604
|
![]()
Можно сделать двойной пакет. Сначала посылаете размер всего пакета, выделяете память, а потом посылаете собственно пакет(информацию). Так делают для больших объемов информации.
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
массив | Настенька..Блонди | Помощь студентам | 3 | 12.06.2009 00:01 |
массив | Настенька..Блонди | Общие вопросы Delphi | 0 | 11.06.2009 21:00 |
Массив | KREGI | Помощь студентам | 2 | 05.03.2009 17:35 |
Упорядочить массив в порядке возрастания и напечатать входной и исходный массив. | TheVenny | Помощь студентам | 3 | 26.11.2008 15:06 |
Массив! | vlad1991 | Паскаль, Turbo Pascal, PascalABC.NET | 4 | 06.11.2008 22:09 |