Как очистить массив char c
Перейти к содержимому

Как очистить массив char c

  • автор:

Обнуление массива в Си

Как правильно обнулить массив? Речь о любых типах массива, будь то символьный, целочисленный, динамический и т.п Если способов несколько то желательно написать как можно больше. Способ, который изучен мною выглядит как — то так:

char str[100] = ; 

Но я не знаю является ли такой метод обнуления верным, с технической точки зрения и с точки зрения процедурного программирования и объектно-ориентированного программирования.

Отслеживать

задан 7 янв 2019 в 12:29

1,273 3 3 золотых знака 11 11 серебряных знаков 33 33 бронзовых знака

Как очистить массив char c

🙂 Привет! Глупый и простой вопрос возник. Как мне очистить массив типа char?
Я делал так:

char Massiv[100];
strcpy(Massiv, «»);

Но так не удобно, да и сам метод примитивен для очистки. Подскажите, как очищать легко и быстро?

И ещё! Не хчу тему создовать. Кто знает, где можно скачать видеоклип Глюк`oza и песня Невеста. Желательно чтоб размер экрана былы ХОРОШИМ и весь файл НЕ занимал менее 5 Мб. Лучше пусть он занимает мегобайт 20, я его скачать хочу. 8)

Сообщ. #2 , 27.05.03, 14:55

Рейтинг (т): 640
Цитата Владислав, 27.05.03, 18:46:23

Привет! Глупый и простой вопрос возник. Как мне очистить массив типа char?
Я делал так:

char Massiv[100];
strcpy(Massiv, «»);

Но так не удобно, да и сам метод примитивен для очистки. Подскажите, как очищать легко и быстро?

Не совсем понятен вопрос. Нужно обнулить весь массив или сделать строку нулевой длины?
Если первое — то:
memset
FillMemory
ZeroMemory
Если второе — то:
Massiv[0]=0;

Сообщ. #3 , 27.05.03, 15:12
Unregistered
Цитата trainer, 27.05.03, 18:55:26

Не совсем понятен вопрос. Нужно обнулить весь массив или сделать строку нулевой длины?
Если первое — то:
memset
FillMemory
ZeroMemory
Если второе — то:
Massiv[0]=0;

Спасибо! Надо только обнулить весь массив. Приведи примерчик. Я думаю это тебе не составит труда.

ЛЮДИ. ДРУГОЙ ВОПРОС.
Я создал свой КАДР, т.е. Frame1 объект. Как мне его сохранить так, чтоб я его мог многократно загружать из вкладки с компонентами. Саму вкладку я знаю как создавать. Но как туда положить мой Frame для многократного использования?

Обнулить массив char

Не могу обнулить переменную типа char
Доброго времени суток, помогите обнулить переменную, т.к. мой компилятор ругается "E2277 Lvalue.

Запись строки char в массив char
Глупый вопрос, но что поделать, многое забыл. Хочу записть строку типа char в массив строк типа.

Как перевести массив char[] в char*
Не знаю как перевести массив char в переменную char*

ReadKey или как обнулить char.
Пытаюсь делать игру на pascalABC (Для общего развития) и наткнулся на такую проблему — при нажатии.

обнулить массив в C

Как наиболее правильно обнулить массив данных в C? Чтобы был обнулен не только первый элемент, но достоверно стерлись и все остальные.

anonymous
08.06.03 00:22:30 MSD

Re: обнулить массив в C

char a[100]; memset (a, 0, sizeof(a));

anonymous
( 08.06.03 01:00:49 MSD )

Re: обнулить массив в C

и не забывай продвинутые виндовуз компиляторы
при оптимизации просто
пропускают оператор memset(a,0,sizeof(a));
что делает gcc Хз )

PS: опять все приходиться делать вручную (((

Aleks_IZA ★
( 08.06.03 08:32:55 MSD )

Re: обнулить массив в C

С какого это перепоя? Если действительно есть такой компилятор, то это его глюк, а не оптимизация. Такое ощущение, что ты спутал 2 вещи:
— Просто выкинуть нафиг вызов memset.
— Вместо вызова memset использовать встроенный код (rep stosd или типа того). Т.е. по сути — тот же memset, но без накладных расходов на push+call+ret+add.

nobody ★★
( 08.06.03 15:07:00 MSD )

Re: обнулить массив в C

А ещё есть bzero. (может оно эфективнее будет)

anonymous
( 09.06.03 07:55:49 MSD )

Re: обнулить массив в C

an$ man bzero [skip] CONFORMING TO 4.3BSD. This function is deprecated -- use memset in new programs. В переводе с англ. это означает, что разработчики glibc рекомендуют использовать в новых программах memset вместо bzero.

nobody ★★
( 09.06.03 14:10:55 MSD )

Re: обнулить массив в C

char a[100]=; Работает классно! И не надо выдрючиваться.

kkk ★★
( 11.06.03 09:43:43 MSD )

Re: обнулить массив в C

char a[100]=; Работает классно! И не надо выдрючиваться.

kkk ★★
( 11.06.03 09:43:50 MSD )

Re: обнулить массив в C

2 kkk.
Такое ощущение, что в этом случае обнулится только a[0].
И потом, это работает только один раз. После того, как ты чего-то записал в `a’, а затем решил его обнулить, `a=;’ вообще не прокатит.

nobody ★★
( 11.06.03 13:14:03 MSD )

Re: обнулить массив в C

2nobody:
kkk прав, при инициализации массива, элементам «не хватившим » значений — инициализируются неявно \0. Для случая
char a[100] = < 0 >
a[0] — явно инициализируется 0-м
a[1]-a[99] — неявно инициализируются 0-м

ps: аналогичным образом можно инициализировать и структуры.
pss: все это есть в стандарте.

anonymous
( 18.06.03 02:28:30 MSD )
Ответ на: Re: обнулить массив в C от anonymous 18.06.03 02:28:30 MSD

Re: Re: обнулить массив в C

>2nobody: >kkk прав, при инициализации массива, элементам «не хватившим » >значений — инициализируются неявно \0. Для случая >char a[100] = < 0 >>a[0] — явно инициализируется 0-м >a[1]-a[99] — неявно инициализируются 0-м

>ps: аналогичным образом можно инициализировать и структуры. >pss: все это есть в стандарте.

——————— все что выше вранье. и зависит от компилятора но не факт покажы где есть в стандарте. используй memset

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *