![]() |
Модераторы: Daevaorn |
![]() ![]() ![]() |
|
Alca |
|
||||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3993 Регистрация: 14.6.2006 Репутация: 7 Всего: 50 |
Заполнить выделенную динамическую память нулями ('\0')?
например буфер можно обнулить так:
Можно ли делать так?
Заполниться ли выделенная память нулями? Это сообщение отредактировал(а) Alca - 21.8.2008, 16:01 |
||||
|
|||||
cutwater |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 592 Регистрация: 24.6.2008 Репутация: 1 Всего: 10 |
Естественно можно
|
|||
|
||||
UnrealMan |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 722 Регистрация: 30.3.2006 Репутация: 27 Всего: 32 |
||||
|
||||
Alek86 |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1299 Регистрация: 30.1.2007 Где: Киев Репутация: 21 Всего: 25 |
кстати, вопрос немного филогсофский
обычно не рекомендуют смешивать сишный стиль и плюсовой кто из программистов тогда использует вместо memset std::uninitialized_fill? |
|||
|
||||
UnrealMan |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 722 Регистрация: 30.3.2006 Репутация: 27 Всего: 32 |
||||
|
||||
Alek86 |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1299 Регистрация: 30.1.2007 Где: Киев Репутация: 21 Всего: 25 |
лучше чем memset
|
|||
|
||||
UnrealMan |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 722 Регистрация: 30.3.2006 Репутация: 27 Всего: 32 |
||||
|
||||
andrew_121 |
|
||||
![]() Кодофей ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3448 Регистрация: 3.1.2008 Репутация: 6 Всего: 33 |
Просто немного не так:
-------------------- Удалил аккаунт. Прощайте! |
||||
|
|||||
UnrealMan |
|
||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 722 Регистрация: 30.3.2006 Репутация: 27 Всего: 32 |
Я про второй свой пример говорил (с new который). Первый, к счастью, работает и в MinGW. Добавлено через 12 минут и 43 секунды Кстати, по стандарту, в отличие от
код
гарантированно инициализирует лишь первые два элемента символьного массива. |
||||
|
|||||
vinter |
|
|||
![]() Explorer ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2735 Регистрация: 1.4.2006 Где: Н.Новгород Репутация: 13 Всего: 56 |
||||
|
||||
Alca |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3993 Регистрация: 14.6.2006 Репутация: 7 Всего: 50 |
Это сообщение отредактировал(а) Alca - 21.8.2008, 19:16 |
|||
|
||||
UnrealMan |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 722 Регистрация: 30.3.2006 Репутация: 27 Всего: 32 |
... и ради достижения корректности программы возникнет необходимость в устранении существующего обнуления, причём компилятор на эту необходимость не укажет. Коли уж наша программа разваливается, стоит нам на шаг отойти от POD-типов, о каком C++-стиле может идти речь? Я тут никакого спора не вижу. Если некое средство считается более крутым лишь потому, что оно из STL, а не из стандартной библиотеки C, то это не что иное, как детский сад. Над псевдоинтеллектуальными рассуждениями я обычно просто стебусь, а не спорю с ними. Это сообщение отредактировал(а) UnrealMan - 21.8.2008, 19:37 |
|||
|
||||
bsa |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 63 Всего: 196 |
Этот код может вызвать ошибку Access Violation или Segmentation fault, в зависимости от ОС. Это типичная ошибка новичка - выход за границы массива. Это сообщение отредактировал(а) bsa - 21.8.2008, 20:53 |
||||
|
|||||
Alek86 |
|
||||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1299 Регистрация: 30.1.2007 Где: Киев Репутация: 21 Всего: 25 |
немного оффтоп
если не заметил, у меня стоял знак вопроса а это значит, что я задавал вопрос и ожидал ответа а не ржачки (кстати нормального ответа, почему все так любят memset и ни разу не используют std::uninitialized_fill)
а поскольку ты над всеми стебешься, кто с тобой не согласен, то... ![]() и по теме
насколько я вижу в примерной реализации std::uninitialized_fill там вообще не идет речи ни о ПОД ни о каком-то конкретном куске памяти. есть только 2 итератора и значения. что ты имел в виду, когда писал о ПОД? (только, пожалуйста, если можно, ответь серьезно, без клоунады) |
||||
|
|||||
andrew_121 |
|
|||
![]() Кодофей ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3448 Регистрация: 3.1.2008 Репутация: 6 Всего: 33 |
Респект и уважуха ![]() -------------------- Удалил аккаунт. Прощайте! |
|||
|
||||
![]() ![]() ![]() |
Правила форума "С++:Общие вопросы" | |
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |