обнулить массив в C
Как наиболее правильно обнулить массив данных в C? Чтобы был обнулен не только первый элемент, но достоверно стерлись и все остальные.
Re: обнулить массив в C
char a[100]; memset (a, 0, sizeof(a));
Re: обнулить массив в C
и не забывай продвинутые виндовуз компиляторы
при оптимизации просто
пропускают оператор memset(a,0,sizeof(a));
что делает gcc Хз )
PS: опять все приходиться делать вручную (((
Re: обнулить массив в C
С какого это перепоя? Если действительно есть такой компилятор, то это его глюк, а не оптимизация. Такое ощущение, что ты спутал 2 вещи:
— Просто выкинуть нафиг вызов memset.
— Вместо вызова memset использовать встроенный код (rep stosd или типа того). Т.е. по сути — тот же memset, но без накладных расходов на push+call+ret+add.
Re: обнулить массив в C
А ещё есть bzero. (может оно эфективнее будет)
Re: обнулить массив в C

Re: обнулить массив в C
char a[100]=<0>; Работает классно! И не надо выдрючиваться.

Re: обнулить массив в C
char a[100]=<0>; Работает классно! И не надо выдрючиваться.
Re: обнулить массив в C
2 kkk.
Такое ощущение, что в этом случае обнулится только a[0].
И потом, это работает только один раз. После того, как ты чего-то записал в `a’, а затем решил его обнулить, `a=<0>;’ вообще не прокатит.
Re: обнулить массив в C
2nobody:
kkk прав, при инициализации массива, элементам "не хватившим " значений — инициализируются неявно \0. Для случая
char a[100] = < 0 >
a[0] — явно инициализируется 0-м
a[1]-a[99] — неявно инициализируются 0-м
ps: аналогичным образом можно инициализировать и структуры.
pss: все это есть в стандарте.
Re: Re: обнулить массив в C
>2nobody: >kkk прав, при инициализации массива, элементам "не хватившим " >значений — инициализируются неявно \0. Для случая >char a[100] = < 0 >>a[0] — явно инициализируется 0-м >a[1]-a[99] — неявно инициализируются 0-м
>ps: аналогичным образом можно инициализировать и структуры. >pss: все это есть в стандарте.
——————— все что выше вранье. и зависит от компилятора но не факт покажы где есть в стандарте. используй memset
Есть ли C++ нативный способ быстро обнулить массив (аналог bzero)? + ещё 2 вопроса
Как обнулить массив быстро?
Обнуление массива: var BukvaNote: array of Byte; StrBukvaNote: array of AnsiString; begin For.
Подскажите есть реальный способ обнулить картридж hp 650 цветной
«Подскажите есть реальный способ обнулить картридж hp 650 цветной. »
Есть ли способ быстро включать интернет на iphone, не залазя каждый раз в настройки?
Какие есть способы быстро включить 3Г интернет не залазя в настройки. Прошивка 4.3.1. Может в новых.
Почему в 2017 году всё ещё нет компилятора C# в нативный код?
Этому есть какие-нибудь объективные причины? В нём есть то, что машинными кодами реализовать.
Сообщение от XuTPbIu_MuHTAu
Сообщение от Search..
думаю, в этом случае рациональней будет написать так:
Сообщение от korisk
Сообщение от korisk
Сообщение от korisk
Сообщение от Evg
Конструктор не может ничего вернуть, ибо функцией на самом деле не является
Из конструктора удалить объект наверное можно, но результат new при этом не изменится. Ибо по сути дела
Т.е. чтоб ы ты там ни делал в конструкторе — на результат того, что тебе вернёт new (считай malloc) ты уже повлиять не сможешь
Чтобы твой тест вернул единицу, тебе надо предварительно засрать всю память, чтобы новый динамический объект не смог создаться
Сообщение от Evg
Конструктор не может ничего вернуть, ибо функцией на самом деле не является
Из конструктора удалить объект наверное можно, но результат new при этом не изменится. Ибо по сути дела
Т.е. чтоб ы ты там ни делал в конструкторе — на результат того, что тебе вернёт new (считай malloc) ты уже повлиять не сможешь
Чтобы твой тест вернул единицу, тебе надо предварительно засрать всю память, чтобы новый динамический объект не смог создаться
Сообщение от CheshireCat
Дан массив D(M, N). Обнулить полностью столбцы, в которых есть хотя бы один нуль.
Помогите решить Дан массив D(M, N). Обнулить полностью столбцы, в которых есть хотя бы один нуль.
Дан массив размера Эн. Обнулить все локальные максимумы массива (то есть числа, большие своих соседей)
Найдите пожалуйста в чём ошибка и если есть возможность исправьте P.S Массив не целочисленный.
Рациональный способ быстро получить информацию из файла
Привет всем! Подскажите, как правильно считать информацию из файла в массивы в С++. Задача такая.
Способ как эффективно и быстро выучить английский язык
Здравствуйте, подскажите методы или способы как быстро и эффективно выучить английский язык, хочу.
How do I clear a C++ array?
How do I clear/empty a C++ array? Theres array::fill , but looks like its C++11 only? I am using VC++ 2010. How do I empty it (reset to all 0)?
7 Answers 7
Assuming array is a normal array (e.g. int[] )
Assuming a C-style array a of size N , with elements of a type implicitly convertible from 0 , the following sets all the elements to values constructed from 0 .
Note that this is not the same as «emptying» or «clearing».
Edit: Following james Kanze’s suggestion, in C++11 you could use the more idiomatic alternative
In the absence of C++11, you could roll out your own solution along these lines:
Как очистить массив C ++?
Как очистить/очистить массив C++? Theres array::fill , но выглядит только его C++ 11? Я использую V C++ 2010. Как его очистить (сбросить все 0)?
5 ответов
Предполагаемый array — это нормальный массив (например, int[] )
Предполагая, что массив C-стиля a размера N , с элементами типа, неявно конвертируемыми из 0 , следующее устанавливает все элементы значений, построенных из 0 .
Обратите внимание, что это не то же самое, что «опорожнение» или «очистка».
Изменить: Следуя предложению Джеймса Канзе, в С++ 11 вы можете использовать более идиоматическую альтернативу
В отсутствие С++ 11 вы можете развернуть свое собственное решение в следующих направлениях: