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

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

  • автор:

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

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

anonymous
08.06.03 00:22:30 MSD

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

anonymous
( 08.06.03 01:00:49 MSD )

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

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

Aleks_IZA ★
( 08.06.03 08:32:55 MSD )

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

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

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

anonymous
( 09.06.03 07:55:49 MSD )

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 )

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

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

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

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

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

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

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 )
Ответ на: комментарий от anonymous 18.06.03 02:28:30 MSD

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

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

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

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

Author24 — интернет-сервис помощи студентам

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

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

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

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

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

Пользователь

Регистрация: 15.02.2011

Сообщений: 41

как очистить массив.

Например у меня есть:

#include FILE *f; int main() < system ("chcp 1251"); char fn[]="yura.txt"; char buf[200]; if((f=fopen(fn,"a"))==NULL) cout system("PAUSE"); >

Как мне очищать buf.

Пользователь

Регистрация: 10.10.2010

Сообщений: 24

buf[0] = ‘\0’; // ‘\0’ — конец строки

Последний раз редактировалось Exeil; 02.05.2011 в 19:45 . Причина: ;

Регистрация: 15.02.2010

Сообщений: 15,673

buf[0] = '\0';

Форумчанин

Регистрация: 09.09.2008

Сообщений: 395

Регистрация: 15.02.2010

Сообщений: 15,673

2 zotox
Зачем? Для строковых функций первого нуля достаточно.

Последний раз редактировалось p51x; 02.05.2011 в 21:46 .

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как очистить ячейку R@v14 Microsoft Office Excel 1 31.05.2010 16:11
Как очистить массив? chandrasecar Общие вопросы Delphi 9 09.11.2008 20:39
Как очистить Canvas? beegl Общие вопросы Delphi 4 30.05.2008 02:51
Как очистить Canvas? Pro_BerSerK Общие вопросы Delphi 9 30.01.2008 16:03
как очистить экран doncova1 Общие вопросы C/C++ 3 18.03.2007 09:50

Как очистить массив 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 для многократного использования?

Сообщ. #4 , 27.05.03, 16:45

Рейтинг (т): 640

Варианты:
1) memset(Massiv,0,100);
2) FillMemory(Massiv,100,0);
3) ZeroMemory(Massiv,100);
Прим.: варианты 2 и 3 — только под Windows

Сообщение отредактировано: trainer — 28.05.03, 05:18
0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
0 пользователей:

  • Предыдущая тема
  • Borland C++ Builder/Turbo C++ Explorer
  • Следующая тема

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

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