![]() |
|
Модераторы: bsa |
![]()
|
|
| yngwie19 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 829 Регистрация: 15.6.2008 Где: Новгород Репутация: нет Всего: нет |
Всем привет, у меня вот какой вопрос. У меня есть текстовое поле в которое Я ввожу текст, после чего читываю его в массив. Затем этот массив с помощью WriteFile() записываю в файл. Дак вот, в в 3 параметре этой функции нужно указывать размер записываемой информации. Его указывать как sizeof(массив) ? или strlen(массив) ?. Насколько Я понимаю разницы нет.
|
|||
|
||||
| Andrey44 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1501 Регистрация: 4.12.2006 Где: На работе Репутация: 2 Всего: 26 |
Разница есть и большая sizeof(массив) - размер массива в байтах strlen(массив) - размер массива в символах -------------------- ????? ??, ??????? ?????. |
|||
|
||||
| yngwie19 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 829 Регистрация: 15.6.2008 Где: Новгород Репутация: нет Всего: нет |
Andrey44, ну а если у меня массив char - ов ?
|
|||
|
||||
| Andrey44 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1501 Регистрация: 4.12.2006 Где: На работе Репутация: 2 Всего: 26 |
Если массив чаров тогда размеры равны, но это с чарами.
А если с другим типом тогда разные, да и вообще strlen и sizeof это разные вещи -------------------- ????? ??, ??????? ?????. |
|||
|
||||
| yngwie19 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 829 Регистрация: 15.6.2008 Где: Новгород Репутация: нет Всего: нет |
Это Я понимаю. Спасибо!
|
|||
|
||||
| Alca |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3993 Регистрация: 14.6.2006 Репутация: 2 Всего: 50 |
strlen - размер Си-шной строки (массив символов, у которого последний - '\0')
Добавлено через 3 минуты и 16 секунд размер массива можно найти через макрос ARRAYSIZE (можешь глянуть его реализацию) Добавлено через 3 минуты и 54 секунды там юзается sizeof |
|||
|
||||
| Dem_max |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1780 Регистрация: 12.4.2007 Репутация: 4 Всего: 39 |
ну вообщето
sizeof(массив) - это если заранее известен размер массива на этапе компиляции. Если массив постоянно меняется, то нужно хранить еще его и размер где то. в Run Time выдаст только размер выделенной памяти а не использованой, не скажет размер динамически выделенной памяти. strlen(массив) - вообщем то неправильно, strlen - вычисляет размер строки. Для примера char str[] = "Hello"; sizeof(str) - будет равно 6 strlen(str) - будет равен 5 sizeof - посчитает строку с нулевым байтом на конце, а strlen без нулевого Это сообщение отредактировал(а) Dem_max - 3.4.2009, 16:02 -------------------- Американские программисты долго не могли понять, почему русские при зависании Windоws всё время повторяют "Твой зайка написал" ("Yоur bunnу wrоte") |
|||
|
||||
| xvr |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 35 Всего: 223 |
Более того,
strlen(buf) == 5 sizeof(buf) == 100 |
|||
|
||||
![]()
|
| Правила форума "C/C++: Для новичков" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |