Russian Qt Forum
Ноябрь 24, 2024, 03:39
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Программирование
>
С/C++
>
Нужно забить char нулями
Страниц: [
1
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: Нужно забить char нулями (Прочитано 8967 раз)
merke
Гость
Нужно забить char нулями
«
:
Ноябрь 26, 2010, 06:06 »
Всем привет!
Нужно забить массив char[129] нулями
Делаю так:
for(int i=0;i<128;i++)
char
= '0';
char[128] = '\0';
Верно ли я делаю?
Записан
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Re: Нужно забить char нулями
«
Ответ #1 :
Ноябрь 26, 2010, 06:24 »
memset(ch, 0, sizeof(ch));
Записан
merke
Гость
Re: Нужно забить char нулями
«
Ответ #2 :
Ноябрь 26, 2010, 06:50 »
спасибо!
Записан
pastor
Administrator
Джедай : наставник для всех
Offline
Сообщений: 2901
Re: Нужно забить char нулями
«
Ответ #3 :
Ноябрь 26, 2010, 11:12 »
char array[129] = {0};
Записан
Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
BRE
Гость
Re: Нужно забить char нулями
«
Ответ #4 :
Ноябрь 26, 2010, 11:13 »
Цитата: pastor от Ноябрь 26, 2010, 11:12
char array[129] = {0};
Только же первый char = 0. Не?
Записан
pastor
Administrator
Джедай : наставник для всех
Offline
Сообщений: 2901
Re: Нужно забить char нулями
«
Ответ #5 :
Ноябрь 26, 2010, 11:14 »
Нет )
Записан
Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
BRE
Гость
Re: Нужно забить char нулями
«
Ответ #6 :
Ноябрь 26, 2010, 11:17 »
Цитата: pastor от Ноябрь 26, 2010, 11:14
Нет )
Точно?
Где написано?
Записан
BRE
Гость
Re: Нужно забить char нулями
«
Ответ #7 :
Ноябрь 26, 2010, 11:24 »
Нда.
При любой инициализации автоматического массива, он вначале зануляется.
Интересно теперь узнать прописано ли это в стандарте.
Записан
pastor
Administrator
Джедай : наставник для всех
Offline
Сообщений: 2901
Re: Нужно забить char нулями
«
Ответ #8 :
Ноябрь 26, 2010, 11:27 »
Цитата: BRE от Ноябрь 26, 2010, 11:17
Цитата: pastor от Ноябрь 26, 2010, 11:14
Нет )
Точно?
Где написано?
Это написано в стандарте. Первый элемент проинициализируется 0, остальные char()
Записан
Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
pastor
Administrator
Джедай : наставник для всех
Offline
Сообщений: 2901
Re: Нужно забить char нулями
«
Ответ #9 :
Ноябрь 26, 2010, 11:32 »
Цитировать
При любой инициализации автоматического массива, он вначале зануляется.
мммм, нет. Он содержит мусор.
Записан
Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
BRE
Гость
Re: Нужно забить char нулями
«
Ответ #10 :
Ноябрь 26, 2010, 11:32 »
Стандарт это хорошо. Спасибо.
Сейчас подумал, а как с этим раньше было в C? Откуда та я же это взял.
Если необходимо просто проинициализировать массив, можно написать и так:
Код
C++ (Qt)
int
buf
[
100
]
=
{
}
;
Записан
BRE
Гость
Re: Нужно забить char нулями
«
Ответ #11 :
Ноябрь 26, 2010, 11:33 »
Цитата: pastor от Ноябрь 26, 2010, 11:32
Цитировать
При любой инициализации автоматического массива, он вначале зануляется.
мммм, нет. Он содержит мусор.
Под инициализацией я имею ввиду:
= { ... };
Записан
pastor
Administrator
Джедай : наставник для всех
Offline
Сообщений: 2901
Re: Нужно забить char нулями
«
Ответ #12 :
Ноябрь 26, 2010, 11:38 »
Цитата: BRE от Ноябрь 26, 2010, 11:32
Стандарт это хорошо. Спасибо.
Сейчас подумал, а как с этим раньше было в C? Откуда та я же это взял.
Да, помоему в С это не работает
Но утверждат не буду )
Записан
Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
Waryable
Гость
Re: Нужно забить char нулями
«
Ответ #13 :
Ноябрь 28, 2010, 18:13 »
На сколько я помню, при одновременном объявлении и инициализации массива такое возможно. Но при одном условии: если инициализация производится не для всех элементов массива. Например: char ch[4] = {0, 1, 2, 3} все очевидно. А вот: char ch[3] = {0, 1} в результате дает: ch[0] = 0, ch[1] = 1, ch[2] = 0, ch[3] = 0. И т.д. Это производится автоматически согласно стандарта C++. К сожалению не знаю верно ли это для С.
Записан
Страниц: [
1
]
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...