![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| Dr_VOLAND |
|
||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 91 Регистрация: 16.9.2007 Репутация: нет Всего: 0 |
Доброй ночи!
Видима глюки у меня, ПОЧЕМУ когда я хочу выделить память под long, и пишу:
??? |
||||
|
|||||
| Anikmar |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2513 Регистрация: 26.11.2006 Где: Санкт-Петербург Репутация: 9 Всего: 59 |
А каков по вашему должен быть размер указателя?
|
|||
|
||||
| Dr_VOLAND |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 91 Регистрация: 16.9.2007 Репутация: нет Всего: 0 |
вопрос хороший конечно, наверное написал я что не так. Но мне нужен размер ячейки памяти на каторую указывает указатель (звеняйте за каламбур)
|
|||
|
||||
| zim22 |
|
||||
|
depict1 ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2682 Регистрация: 15.1.2009 Где: Украина Репутация: 24 Всего: 69 |
тогда к указателю нужно применить dereference operator и брать уже его sizeof
*** так понятней?
Это сообщение отредактировал(а) zim22 - 25.9.2009, 22:27 |
||||
|
|||||
| Anikmar |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2513 Регистрация: 26.11.2006 Где: Санкт-Петербург Репутация: 9 Всего: 59 |
||||
|
||||
| Dr_VOLAND |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 91 Регистрация: 16.9.2007 Репутация: нет Всего: 0 |
"я чувствовал это!!"). Спасибо Зим, но не помогло. Да я не написало, что собственно хочу увидеть - а увидеть хочу я 20*8.
Так как sizeof(long) - это 8, а 20 * sizeof(long) - соответсвенно 160. |
|||
|
||||
| Anikmar |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2513 Регистрация: 26.11.2006 Где: Санкт-Петербург Репутация: 9 Всего: 59 |
||||
|
||||
| Dr_VOLAND |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 91 Регистрация: 16.9.2007 Репутация: нет Всего: 0 |
вай? ближе к делу, я сейчас копаюсь с pvm (для любознательных Parallel Virtual Machine). Так вот, мне нужно создать объемную переменную запаковать её и отправить слейву, на что дружок должен прислать мне привет.
Вот и проблема у меня встала, как создать эту самую обьемистую переменную... без всякого напихивания паралона в неё. Это сообщение отредактировал(а) Dr_VOLAND - 25.9.2009, 22:48 |
|||
|
||||
| andrew_121 |
|
|||
![]() Кодофей ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3448 Регистрация: 3.1.2008 Репутация: 6 Всего: 33 |
что-то я не въезжаю.... кто задает вопрос, и кто отвечает?!
что за железка, компилятор? Добавлено через 8 минут и 45 секунд так. что тебе нужно? 1. 160 бит? 2. 160 байт? 3. массив из 20-ти long-ов? -------------------- Удалил аккаунт. Прощайте! |
|||
|
||||
| Dr_VOLAND |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 91 Регистрация: 16.9.2007 Репутация: нет Всего: 0 |
вспышка с лева, с права - появление профи и сразу вопрос по делу. ок. про железяку - работаю удаленно на серваке, посему знаю что AMD64, крутится фря, а компилятор gcc-шный 4.2.1
|
|||
|
||||
| andrew_121 |
|
|||
![]() Кодофей ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3448 Регистрация: 3.1.2008 Репутация: 6 Всего: 33 |
ок. значит sizeof(long) == 8. первое выяснили. далее.
Это сообщение отредактировал(а) andrew_121 - 25.9.2009, 23:08 -------------------- Удалил аккаунт. Прощайте! |
|||
|
||||
| Dr_VOLAND |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 91 Регистрация: 16.9.2007 Репутация: нет Всего: 0 |
нужно 160 байт, запаковать их спецфункцией pvm_pklong и послать в космос
|
|||
|
||||
| andrew_121 |
|
|||
![]() Кодофей ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3448 Регистрация: 3.1.2008 Репутация: 6 Всего: 33 |
-------------------- Удалил аккаунт. Прощайте! |
|||
|
||||
| Dr_VOLAND |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 91 Регистрация: 16.9.2007 Репутация: нет Всего: 0 |
я понимаю, и тоже так пишу... но вот в чем проблема, проверяя скорость передачи я вижу что скорость рукопожатия (посылки туда и обратно), для одного и 160 байтов у меня одинакова, этого не может быть. согласны? (сеть не гигабитная=)
поэтому я хочу чётко знать что посылаю 160 байт! Это сообщение отредактировал(а) Dr_VOLAND - 26.9.2009, 00:40 |
|||
|
||||
| andrew_121 |
|
|||
![]() Кодофей ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3448 Регистрация: 3.1.2008 Репутация: 6 Всего: 33 |
В этом фрагменте кода все в порядке. Смотри, возможно что-то еще у тебя не так.
-------------------- Удалил аккаунт. Прощайте! |
|||
|
||||
| bilbobagginz |
|
|||
![]() Naughtius Maximus ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8813 Регистрация: 2.3.2004 Где: Israel Репутация: 3 Всего: 317 |
спокойно может быть. что за сеть ? -------------------- Я ещё не демон. Я только учусь. |
|||
|
||||
| Anikmar |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2513 Регистрация: 26.11.2006 Где: Санкт-Петербург Репутация: 9 Всего: 59 |
Начали с работы sizeof теперь чувствую перейдем к сетям и фреймам.
Если мои телепатические способности не врут, я предполагаю, что автору топика нужно получить из сетки некий объем байт и он с помощью оператора sizeof хочет узнать размер полученных данных. |
|||
|
||||
| MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 52 Всего: 207 |
не согласен 1. время установления TCP соединения не зависит от количества байт, которые будут по нему передаваться 2. с близкой к 100% вероятностью все 160 байт будут переданы в первом же пакете после установления соединения -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
| bilbobagginz |
|
|||
![]() Naughtius Maximus ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8813 Регистрация: 2.3.2004 Где: Israel Репутация: 3 Всего: 317 |
пришел MAKCim, и весь дидактический процесс наводящих вопросов опошлил
-------------------- Я ещё не демон. Я только учусь. |
|||
|
||||
| Dr_VOLAND |
|
||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 91 Регистрация: 16.9.2007 Репутация: нет Всего: 0 |
погонял я трафик по сети, и увидел что скорость передачи начинает меняться после 3 Кбайт, до этого передача 0-3000 байт по сети не различается.
возвращаемся с первоначальному вопросу про sizeof:
пишем:
как узнать что комп выделил именно 1000байт для указателя *str, которую я хочу запаковать, и переслать слейву? Это сообщение отредактировал(а) Dr_VOLAND - 26.9.2009, 14:33 |
||||
|
|||||
| zim22 |
|
|||
|
depict1 ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2682 Регистрация: 15.1.2009 Где: Украина Репутация: 24 Всего: 69 |
?
|
|||
|
||||
| GoldFinch |
|
|||
![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2141 Регистрация: 30.11.2008 Репутация: 15 Всего: 26 |
||||
|
||||
| MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 52 Всего: 207 |
учитывая, что в большинстве случаев PMTU <= MTU = 1500 байт, то либо у вас определенно не обычная ethernet локалка, либо вы что-то измерили неправильно ;) если я вас правильно понял, то почему бы не хранить размер данных в некотором дескрипторе, который передается с остальными данными типа
-------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
| Anikmar |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2513 Регистрация: 26.11.2006 Где: Санкт-Петербург Репутация: 9 Всего: 59 |
В большинстве, но не во всех. Запросто и 4К может быть и более. Если TCP будет маленькие пакеты аккумулировать, то большой может даже быстрее маленького уйти.
Если malloc отработал без ошибки - значит он выделил. оператор sizeof высчитывается на этапе компиляции и в вашем случае бесполезен - так как он не знает ничего про malloc и как орна отработала. |
|||
|
||||
| Dov |
|
||||||
![]() аСинизатор ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1721 Регистрация: 10.5.2003 Где: Эрец-Исраэль Репутация: 15 Всего: 88 |
-------------------- Тут вечности запах томительный, И свежие фрукты дешевые, А климат у нас – изумительный, И только соседи – #уевые. Игорь Губерман. |
||||||
|
|||||||
| Dr_VOLAND |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 91 Регистрация: 16.9.2007 Репутация: нет Всего: 0 |
||||
|
||||
| Dr_VOLAND |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 91 Регистрация: 16.9.2007 Репутация: нет Всего: 0 |
Dov к сожалению не катит, хотя я б с радостью попробовал. Для этого хака нужна malloc.h, на что компилятор начинает выть - поменяй на stdlib.h
|
|||
|
||||
| MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 52 Всего: 207 |
а прочитать до конца фразу слабо? ;) я вроде не зря уточнил про два возможных варианта -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
| Dov |
|
|||
![]() аСинизатор ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1721 Регистрация: 10.5.2003 Где: Эрец-Исраэль Репутация: 15 Всего: 88 |
Dr_VOLAND, тогда делай проверку. При невозможности выделить запрашиваемое количество памяти тебе будет об этом сообщено. В противном случае ты будешь уверен, что всё прошло успешно.
Это сообщение отредактировал(а) Dov - 26.9.2009, 15:26 -------------------- Тут вечности запах томительный, И свежие фрукты дешевые, А климат у нас – изумительный, И только соседи – #уевые. Игорь Губерман. |
|||
|
||||
| Dr_VOLAND |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 91 Регистрация: 16.9.2007 Репутация: нет Всего: 0 |
Всем спасибо! тему закрыл.
|
|||
|
||||
| Anikmar |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2513 Регистрация: 26.11.2006 Где: Санкт-Петербург Репутация: 9 Всего: 59 |
Я только хотел вашу фразу усилить, а не оспорить. Вообще может и 64 К быть Если конкретная реализация TCP/IP поддерживает алгоритм Нэгла, то она может придержать маленький пакет, чтобы не тратить время сетки на подтверждение. Поэтому большой пакет может уйти быстрее маленького и нет тут ничего сверхестественного. Как правильно сказал MAKCim, все зависит от размера пакета и размера MTU на конкретной сетке. Если пакет намного меньше максимального размера сегмента, протокол придержит его в надежде на то, что добавится еще пакет и сегмент не уйдет почти пустой. Типа догрузить попутный груз, чтобы фуру не гнать порожняком. |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |