1569 / 505 / 48
Регистрация: 04.04.2009
Сообщений: 1,891
|
|||||||||||
1 | |||||||||||
Размер символьного массива14.06.2012, 10:43. Показов 19974. Ответов 24
Метки нет (Все метки)
Всех приветствую!
Прошу простить, что тревожу столь банальными вопросами, но сам додумать не могу... Задан массив:
На мой глупый ум приходит только:
0
|
14.06.2012, 10:43 | |
Ответы с готовыми решениями:
24
Почему размер символьного массива должен быть больше на 1 символ, а не на 2? Заполнение массива значениями из символьного массива Обработка символьного массива Сортировка символьного массива |
298 / 256 / 57
Регистрация: 11.06.2012
Сообщений: 1,557
|
||||||
14.06.2012, 11:00 | 2 | |||||
хм, я бы делал так
1
|
Чайник
70 / 70 / 9
Регистрация: 15.02.2012
Сообщений: 475
|
||||||
14.06.2012, 11:01 | 3 | |||||
Ну если б строка у тебя была представлена в виде массива то можно было бы так
1
|
1569 / 505 / 48
Регистрация: 04.04.2009
Сообщений: 1,891
|
|
14.06.2012, 11:02 [ТС] | 4 |
Zuzik, не универсально. А если у меня выше a задан был бы типом wchar_t* ?
Я тут подумал, sizeof тут, пожалуй, не помощник... Он разве дает представление о байтах?
0
|
Каратель
|
|
14.06.2012, 11:38 | 5 |
sizeof дает размер в байтах и этот размер всегда известен на этапе компиляции
что страшное вы тут делаете, сначала выделяете память под один символ, а потом просто "забиваете" указатель вообще другим адресом а смысл длину строки множить на размер char(еденица)? а смысл длину строки множить на размер указателя? strlen() + 1
1
|
1569 / 505 / 48
Регистрация: 04.04.2009
Сообщений: 1,891
|
|||||||||||
14.06.2012, 12:13 [ТС] | 6 | ||||||||||
Jupiter,
Ну это я просто откуда-то содрал А так вот
Еще раз... Возьмите wchar_t и аналогичную функцию, которая якобы поможет нам узнать размер:
0
|
Каратель
|
|||||||||||
14.06.2012, 12:19 | 7 | ||||||||||
нет, лучше так
1
|
1569 / 505 / 48
Регистрация: 04.04.2009
Сообщений: 1,891
|
|
14.06.2012, 12:20 [ТС] | 8 |
Или я что-то жестко путаю...
Добавлено через 33 секунды Jupiter, Откуда? В смысле не так спросил)) Имел в виду к чему Вы клоните? Как в таком случае узнать размер wchar_t? Вы сказали, что strlen() +1 даст то, что я хочу, правильно? Я предположил, что раз эта штука работает для char почему бы ей не сработать и для wchar_t, м? На мой (глупый) взгляд strlen() + 1 это всего лишь подгонка... Просто мы в курсе, что размер чара равен 1 байт и ориентируемся на это. Мол длина строки = размеру. Но истинный размер (в байтах) мы не получаем.
0
|
Каратель
|
|
14.06.2012, 12:23 | 9 |
1
|
127 / 125 / 16
Регистрация: 03.07.2011
Сообщений: 354
|
||||||
14.06.2012, 12:26 | 10 | |||||
1
|
1569 / 505 / 48
Регистрация: 04.04.2009
Сообщений: 1,891
|
|
14.06.2012, 12:29 [ТС] | 11 |
ZoRT, так-то так... А вот коммент (слегка подправленный) уважаемого модера тут кстати будет:
Я просто так изначально и думал высчитывать именно размер, но Jupiter вышеупомянутым комментом жестко сбил...
0
|
127 / 125 / 16
Регистрация: 03.07.2011
Сообщений: 354
|
|
14.06.2012, 12:32 | 12 |
ну так в том то и дело, что для char 1байт, и смысла особого умножать нету.
1
|
1569 / 505 / 48
Регистрация: 04.04.2009
Сообщений: 1,891
|
|||||||||||
14.06.2012, 12:45 [ТС] | 14 | ||||||||||
ZoRT,
Да это понятно Я как бы имел в виду "универсальную" формулу (в абстрактном виде)... Ну типа: пусть дано:
Тогда sizeof(*a) - вернет размер первого символа в строке, т.е. размер char или wchar_t, а длинстр(a) длину соответствующей строки. Так ведь? P.S. Сейчас вы будете ругаться, кричать на говнокод и говорить: , но я просто призываю абстрагироваться Добавлено через 3 минуты Если нет, то прошу подправить именно мою "универсальную" формулу
0
|
Каратель
|
||||||
14.06.2012, 12:48 | 15 | |||||
0
|
1569 / 505 / 48
Регистрация: 04.04.2009
Сообщений: 1,891
|
||||||
14.06.2012, 12:54 [ТС] | 16 | |||||
Мм... Видимо, с этим сложно...)
Ладно, пойду другим путем Jupiter, Вот в этом коде (только не исправляйте его плиз ):
0
|
1569 / 505 / 48
Регистрация: 04.04.2009
Сообщений: 1,891
|
|
14.06.2012, 12:57 [ТС] | 18 |
0
|
1569 / 505 / 48
Регистрация: 04.04.2009
Сообщений: 1,891
|
|
14.06.2012, 13:08 [ТС] | 20 |
Jupiter,
Ага, я это и имел в виду Большущее Вам спасибо! Я кажется разобрался... И откуда у Вас столько терпения?
0
|
14.06.2012, 13:08 | |
14.06.2012, 13:08 | |
Помогаю со студенческими работами здесь
20
Заполнение символьного массива Обработка символьного массива Вывод символьного массива Перебор символьного массива Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |