|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
01.10.2012, 17:40 | #1 |
Форумчанин
Регистрация: 05.06.2007
Сообщений: 529
|
инициализация массива структуры
Здравствуйте.
Правильно ли я инициализирую массив структур клиентов нулями, чтобы не было глюков при последующем использовании? Код:
|
01.10.2012, 19:01 | #2 |
Участник клуба
Регистрация: 15.07.2008
Сообщений: 1,933
|
В общем случае правильно, только не стоит использовать "магическое число" 256, объявите константу, определяющую размер массива, это позволит избежать ошибок в будущем, если размер массива будет изменён.
Код:
|
01.10.2012, 21:41 | #3 |
Форумчанин
Регистрация: 17.12.2011
Сообщений: 111
|
Ещё один вариант, схожий с предыдущим
Код:
|
01.10.2012, 22:39 | #4 |
Старожил
Регистрация: 21.03.2009
Сообщений: 2,193
|
Константы (вместе с inline-функциями) как раз и были придуманы, чтоб не использовать эти ужасные define. Если, конечно, мы не имеем дела с Си, где от них не спрятаться не скрыться.
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта Тема на форуме, посвященная ему же |
01.10.2012, 23:30 | #5 |
C++ hater
СтарожилДжуниор
Регистрация: 19.07.2009
Сообщений: 3,333
|
а что,
Код:
Код:
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay
My other car is cdr. Q: Whats the object-oriented way to become wealthy? A: Inheritance |
01.10.2012, 23:47 | #6 |
Форумчанин
Регистрация: 05.06.2007
Сообщений: 529
|
Про client_structure clients[256] = {}; - не думал, что так можно и для структур.
Кстати, если что, я имею в виду язык Си, а не С++. А при memset(clients,0,sizeof(clients)); разве не будет инициализирован только 1-ый элемент массива, а в остальных могут оставаться обрывки данных? |
01.10.2012, 23:55 | #7 |
C++ hater
СтарожилДжуниор
Регистрация: 19.07.2009
Сообщений: 3,333
|
2Артэс
можно. не будет. книжку почитай по языку. 2 года назад спрашивал про сокеты, а сейчас про базу языка. странный ты.
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay
My other car is cdr. Q: Whats the object-oriented way to become wealthy? A: Inheritance |
02.10.2012, 00:20 | #8 |
Участник клуба
Регистрация: 15.07.2008
Сообщений: 1,933
|
|
02.10.2012, 00:21 | #9 |
Старожил
Регистрация: 19.08.2009
Сообщений: 2,119
|
Артэс
Правильно ли я инициализирую массив структур клиентов нулями, чтобы не было глюков при последующем использовании? Правильно, но только в том случае, если все поля в этой структуре - простые (для подробностей гоогле C++ POD) и, поскольку clients - это массив, а не указатель, как думают некоторые(((Ж, то можно проще: memset(clients, 0, sizeof(clients));
А вы почему со мной не соглашаетесь, у вас что, импотенция? (c) ACE Valery
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
инициализация массива, вывод массива и обработка массива должны быть реализованы с помоshью функций | airesjke | Помощь студентам | 0 | 02.03.2012 16:14 |
Инициализация двумерного массива. | Phoenixx | Общие вопросы C/C++ | 4 | 29.12.2011 18:17 |
инициализация массива | parazzzitka93 | Общие вопросы C/C++ | 11 | 02.04.2011 21:01 |
Инициализация массива, являющегося полем структуры во время создания объекта | Radser | Общие вопросы C/C++ | 10 | 18.01.2010 20:28 |
инициализация массива | Arcueid1691 | Паскаль, Turbo Pascal, PascalABC.NET | 2 | 01.06.2009 02:36 |