![]() |
Модераторы: Daevaorn |
![]() ![]() ![]() |
|
Promitheus |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 73 Регистрация: 28.3.2007 Репутация: 1 Всего: 1 |
Господа, а граммотно ли
Писать через #define жесткое количество элементов, а потом под них динамически память выделять ? Не экономнее ли скажем массив завести ? Или уж тогда с клавы читать количество требуемых элементов, а потом память выделять ? |
|||
|
||||
Promitheus |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 73 Регистрация: 28.3.2007 Репутация: 1 Всего: 1 |
![]() adLucem, я прекрасно понял в чем суть вопроса. Прямого отношения к задаче (помогите написать функцию для дублирования строки) мои замечания не имеют, но косвенно всё же они относятся к и данной задаче в том числе. И я, чтобы не заводить новую тему написал сюда вопрос, сам я так не пишу, и хотел выяснить насколько это целесообразно и может быть есть подводные камни, о которых я не знаю. Ваш тон это ваше личное дело. Я бы так сделал, по-деревенски:
Это сообщение отредактировал(а) Promitheus - 8.5.2007, 12:03 |
|||
|
||||
Promitheus |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 73 Регистрация: 28.3.2007 Репутация: 1 Всего: 1 |
![]() Кардинально оно ничем не отличается от приведенных варинатов, но на мой взгляд оно лаконичнее и все операторы делают то, что должны. В принципе тему можно было закончить, после 3 поста, поскольку функция написана, вывод в поток есть - всё. Но коли уж Вы решили написать еще пару функций, вот я и решил задать Вам вопрос, на который, я так понимаю Вы отказываетесь отвечать ... |
|||
|
||||
adLucem |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 94 Регистрация: 17.4.2007 Где: Украина, Донецк Репутация: нет Всего: 5 |
В данном случае действительно можно использовать статический массив (использование динамической памяти пришло в процессе экспериментов). Но в общем случае вопросы использования #define для задания максимального размера буфера и способа выделения памяти не связаны. |
|||
|
||||
Voldemar2004 |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1650 Регистрация: 25.12.2004 Репутация: нет Всего: 23 |
-------------------- i_i (';') (V) ![]() |
||||
|
|||||
Promitheus |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 73 Регистрация: 28.3.2007 Репутация: 1 Всего: 1 |
adLucem, Всё спасиб. Про то, что такое #define я знаю.
![]() |
|||
|
||||
W4FhLF |
|
||||
![]() found myself ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2831 Регистрация: 2.12.2006 Репутация: 20 Всего: 121 |
Конечно, 1 переменная.
-------------------- "Бог умер" © Ницше "Ницше умер" © Бог |
||||
|
|||||
chudik |
|
|||
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 5.5.2007 Репутация: 0 Всего: 1 |
а как сделать так чтобы ваши программы правильно определяли длинну строки? во всех ваших программах строка ситается до пробела после пробела информация не копируется.
![]() |
|||
|
||||
dizzy1984 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 675 Регистрация: 15.2.2007 Репутация: 3 Всего: 25 |
Информация копируется до символа '\0', т.е символа с кодом 0.
Пробелы также копируются. |
|||
|
||||
chudik |
|
|||
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 5.5.2007 Репутация: 0 Всего: 1 |
но в том то и дело что не в одной из программ пробелы не копируются |
|||
|
||||
dizzy1984 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 675 Регистрация: 15.2.2007 Репутация: 3 Всего: 25 |
Borland C++ 3.1
Вывел ad dsa sak ad dsa sakad dsa sak Что абсолюно верно. Пробелы скопировались. Почему вы считаете иначе? |
|||
|
||||
ama_kid |
|
|||
![]() АСУТП-кодер ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1460 Регистрация: 5.3.2007 Где: Москва Репутация: 2 Всего: 95 |
Он считает иначе, потому что у тебя строка присваивается жестко, а в предложенных выше вариантов - строка считывается с помощью scanf или cin, которые считывают данные до пробела...
chudik, Все варианты работают правильно, только инициализацию строки надо проводить по другому. Вариант с scanf тебе предложили как наименее геморройный... Формирование строки с пробелом - это уже другая задача... Это сообщение отредактировал(а) ama_kid - 10.5.2007, 13:58 -------------------- самурай без меча подобен самураю с мечом, но только без меча |
|||
|
||||
Dronchik |
|
||||
![]() Звукач ёмаё ![]() ![]() Профиль Группа: Участник Сообщений: 451 Регистрация: 1.5.2007 Репутация: 0 Всего: 37 |
А не легчели сделать...
-------------------- Вместо слов делай дело, от которого ты фанатеешь. (с) |
||||
|
|||||
Voldemar2004 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1650 Регистрация: 25.12.2004 Репутация: нет Всего: 23 |
Мне кажется, самое простое это то, что я предложил:
![]() Это сообщение отредактировал(а) Voldemar2004 - 11.5.2007, 21:42 -------------------- i_i (';') (V) ![]() |
|||
|
||||
chudik |
|
||||
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 5.5.2007 Репутация: 0 Всего: 1 |
а вы не могли бы закоментировать этот код |
||||
|
|||||
![]() ![]() ![]() |
Правила форума "С++:Общие вопросы" | |
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |