Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.03.2016, 21:25   #11
Croessmah
Вредный кошак
Участник клуба
 
Аватар для Croessmah
 
Регистрация: 14.10.2012
Сообщений: 1,159
По умолчанию

Цитата:
а это глобальнй массив, заполнить его нулями нужно при объявлении.
В каком смысле глобальный?
Если оно static storage duration, то оно по умолчанию будет инициализироваться нулями.

Собственно, из стандарта C99:
Цитата:
If an object that has automatic storage duration is not initialized explicitly, its value is indeterminate. If an object that has static storage duration is not initialized explicitly, then:
— if it has pointer type, it is initialized to a null pointer;
— if it has arithmetic type, it is initialized to (positive or unsigned) zero;
— if it is an aggregate, every member is initialized (recursively) according to these rules;
— if it is a union, the first named member is initialized (recursively) according to these rules.
Что касается
Код:
char *arr[123] = {0};
то
Цитата:
If there are fewer initializers in a brace-enclosed list than there are elements or members
of an aggregate, or fewer characters in a string literal used to initialize an array of known
size than there are elements in the array, the remainder of the aggregate shall be
initialized implicitly the same as objects that have static storage duration.

Последний раз редактировалось Croessmah; 12.03.2016 в 21:32.
Croessmah вне форума Ответить с цитированием
Старый 12.03.2016, 21:59   #12
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

А, даже так, я почему-то думал про 0 по умолчанию к массивам не относится.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 12.03.2016, 22:08   #13
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,543
По умолчанию

Цитата:
Сообщение от Alex11223 Посмотреть сообщение
А, даже так, я почему-то думал про 0 по умолчанию к массивам не относится.
Не понял. Циклы уже отменили? Блин, отстаю от жизни.

Код:
for(int i=0; i < N; i++) S[i] = 0;
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder
Smitt&Wesson вне форума Ответить с цитированием
Старый 09.03.2018, 20:07   #14
rassant
 
Регистрация: 30.01.2014
Сообщений: 3
По умолчанию

int* arr = new int[n]();
rassant вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как заполнить массив рандомными числами (Си) Sterben Помощь студентам 2 26.04.2015 19:51
Как заполнить массив? L6go1as Общие вопросы C/C++ 2 02.11.2011 19:34
как заполнить трехмерный массив процедурой? MyLastHit Общие вопросы Delphi 9 03.01.2011 21:00
Как заполнить массив вещественными числами new-in-c Общие вопросы C/C++ 1 03.05.2010 10:54
как заполнить массив рандомно ronny137 Помощь студентам 9 02.05.2010 21:25