Форум программистов, компьютерный форум CyberForum.ru

Как очистить элементы массива? - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 163, средняя оценка - 4.61
Telchar
0 / 0 / 0
Регистрация: 09.04.2009
Сообщений: 6
17.04.2009, 13:02     Как очистить элементы массива? #1
Скажите, а можно как-то очистить массив? Допустим задан массив типа int mas[100]. После некоторых вычислений, он заполнился следующими значениями, к примеру:
mas[0] = 20
mas[1] = 23
mas[2] = 35
...
mas[70] = 55

Но мне нужно его очистить, чтобы записать новые значения. Подскажите, как это сделать?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.04.2009, 13:02     Как очистить элементы массива?
Посмотрите здесь:

одномерный массив. Все его элементы, не равные нулю, переписать, сохраняя их порядок в начало массива, а нулевые элементы в конец массива in c++ C++
Как из массива получить другой, где элементы первого массива перемножены на самих себя C++
C++ Вывести элементы массива на промежутке [ a,b ], вычислить количество элементов массива, заменить все положительные элементы
C++ Получить массив, расположив в его начале элементы массива A, а затем — элементы массива B
Создать два новых массива, в один из которых поместить положительные элементы массива, а в другой отрицательные и нулевые элементы C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Monte-Cristo
 Аватар для Monte-Cristo
2805 / 1370 / 30
Регистрация: 07.03.2009
Сообщений: 4,446
17.04.2009, 13:06     Как очистить элементы массива? #2
что в вашем понимании очистить?
обнулить?
в любом случае, можно лишь записывать данные поверх существующих... и обнулить. очистить - такого понятия при работе с массивами нет. да и оно не нужно. всегда есть выход альтернативный.
Telchar
0 / 0 / 0
Регистрация: 09.04.2009
Сообщений: 6
17.04.2009, 13:10  [ТС]     Как очистить элементы массива? #3
да, верно, просто сейчас у меня старые данные плюсуются с новыми, а это не есть гуд )) мне бы хотелось просто перезаписывать старые новыми...
12zzz
13 / 13 / 1
Регистрация: 14.04.2009
Сообщений: 66
17.04.2009, 13:35     Как очистить элементы массива? #4
http://www.delphibasics.ru/FillChar.php
Gravity
 Аватар для Gravity
556 / 550 / 39
Регистрация: 29.01.2009
Сообщений: 1,274
17.04.2009, 13:44     Как очистить элементы массива? #5
C
1
2
3
#include <string.h>
 
memset(mas, 0, sizeof(int)*N);
Обнулит первые N элементов целочисленного массива.
Telchar
0 / 0 / 0
Регистрация: 09.04.2009
Сообщений: 6
17.04.2009, 17:33  [ТС]     Как очистить элементы массива? #6
спасибо! =)
Monte-Cristo
 Аватар для Monte-Cristo
2805 / 1370 / 30
Регистрация: 07.03.2009
Сообщений: 4,446
17.04.2009, 17:54     Как очистить элементы массива? #7
ну обнулить можно так:

C++
1
for (int i=0; i<n; i++) mas[i] = 0; // обнуляем массив состоящий из n элементов
ну а вообще, данные перезаписываются. то есть:
C++
1
2
3
4
int mas[3];
mas[1] = 25; 
mas[1] = 55;
cout << mas[1];
выведет на экран 55. так как в ячейку с индексом 1 присвоено значение 55 (и оно атирает все что было в этой ячейки до этого)
accept
4837 / 3236 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
17.04.2009, 19:12     Как очистить элементы массива? #8
C
1
    memset(mas, 0, sizeof(int)*N);
C
1
    memset(mas, 0, sizeof mas);
Attos
9 / 9 / 0
Регистрация: 20.08.2010
Сообщений: 27
28.09.2010, 22:20     Как очистить элементы массива? #9
Цитата Сообщение от accept Посмотреть сообщение
C
1
    memset(mas, 0, sizeof(int)*N);
C
1
    memset(mas, 0, sizeof mas);
C
1
  memset(mas, 0, sizeof( mas)/sizeof(mas[0]);
?
CyBOSSeR
Эксперт C++
 Аватар для CyBOSSeR
2293 / 1663 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
28.09.2010, 22:22     Как очистить элементы массива? #10

Не по теме:

Attos, да, Вы, батенька, некрофил


И кстати
C++
1
memset(mas, 0, sizeof( mas)/sizeof(mas[0]);
ошибочное решение. memset'у нужно знать количество байт, а не элементов.
Правильный вариант:
C++
1
memset(arr, 0, sizeof(arr));
Attos
9 / 9 / 0
Регистрация: 20.08.2010
Сообщений: 27
01.10.2010, 21:48     Как очистить элементы массива? #11
Цитата Сообщение от CyBOSSeR Посмотреть сообщение
ошибочное решение. memset'у нужно знать количество байт, а не элементов.
Правильный вариант:
C++
1
memset(arr, 0, sizeof(arr));
Посмотрел, точно хотя по "count" сразу и скажешь)
Цитата Сообщение от CyBOSSeR Посмотреть сообщение

Не по теме:

Attos, да, Вы, батенька, некрофил

Почему это? разве это не используется нигде?
CyBOSSeR
Эксперт C++
 Аватар для CyBOSSeR
2293 / 1663 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
01.10.2010, 21:56     Как очистить элементы массива? #12
Цитата Сообщение от Attos Посмотреть сообщение
Почему это? разве это не используется нигде?
Посмотрите на дату сообщений в теме.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.10.2010, 00:59     Как очистить элементы массива?
Еще ссылки по теме:

C++ Получить третий массив C[15] по правилу: вначале элементы первого массива, затем элементы второго массива
C++ Записать элементы массива Х в массив У, сместив элементы массива Х вправо на 3 позиции
C++ Записать элементы массива Х в массив У, сместив элементы массива Х вправо на 3 позиции

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9371 / 5421 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
02.10.2010, 00:59     Как очистить элементы массива? #13
Цитата Сообщение от CyBOSSeR Посмотреть сообщение
Посмотрите на дату сообщений в теме
Да ладно, прошлогодний всего покойник. Тут, бывает, и двух и трёх летних откапывают...
Для полноты картины BSD-стиль
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <stdio.h>
#include <strings.h>
 
#define SIZE 5
 
int main(void){
    int i, arr[SIZE] = { 1, 2, 3, 4, 5 };
    for ( i = 0; i < SIZE; ++i )
        printf("%d%c", arr[i], ( i < SIZE - 1 ) ? ' ' : '\n');
    bzero(arr, sizeof(int) * SIZE);
    for ( i = 0; i < SIZE; ++i )
        printf("%d%c", arr[i], ( i < SIZE - 1 ) ? ' ' : '\n');
    
    return 0;
}
Yandex
Объявления
02.10.2010, 00:59     Как очистить элементы массива?
Ответ Создать тему
Опции темы

Текущее время: 03:25. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru