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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 42, средняя оценка - 4.90
IamSCORPION
SysOp
39 / 38 / 1
Регистрация: 13.04.2009
Сообщений: 274
#1

Динамическое очищение массива - C++

08.09.2009, 01:57. Просмотров 6557. Ответов 6
Метки нет (Все метки)

Помогите пжлст) Нужно в программе при определенных обстоятельствах очистить массив.
C++
1
char n[10];
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.09.2009, 01:57
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Динамическое очищение массива (C++):

Очищение динамического массива структур - C++
Здравствуйте, Господа. Есть структура, например такая: typedef struct cont1 { long int n; char name; char hoho; }CONTACT; И...

Динамическое создание массива - C++
Помогите пожалуйста. Пытаюсь создать массив char* выделяя под него память динамически int x = ptrLast - ptrFirst; char*...

Динамическое размещение массива структур - C++
Подскажите пожалуйста, как динамически разместить массив из нескольких структур, используя операцию new??

Динамическое размещение массива структур - C++
В коде ниже создается массив из трех структур cs и инициализируется некими значениями. #include "stdafx.h" #include <iostream> struct...

Очищение потока - C++
Есть манипулятор flush. Где применяется это манипулятор в программе?

Очищение потока в с++ - C++
Добрый день. составляю программу в с++, использую getline для считывания строки. Но видимо у меня входной поток не пустой, т.к. в мой...

6
ISergey
Maniac
Эксперт С++
1376 / 887 / 53
Регистрация: 02.01.2009
Сообщений: 2,663
Записей в блоге: 1
08.09.2009, 02:09 #2
Цитата Сообщение от IamSCORPION Посмотреть сообщение
Помогите пжлст) Нужно в программе при определённых обстоятельствах очистить массив.
C++
1
char n[10];
так?
C++
1
2
char n[10];
n[0] = '\0'; //
1
-=ЮрА=-
Заблокирован
Автор FAQ
08.09.2009, 09:23 #3
Вообще очистка производится при помощи free если память выделена malloc(...) и delete [] если память была выделена оператором new [], для char n[10] солидарен с ISergey т.к. в этом случае массив статический и оба варианта с free и delete выкинут исключения...
C++
1
2
3
4
5
6
7
8
9
//free :
 
char * chMass = (char *)malloc(nSybols*sizeof(char));
free(chMass);
 
//delete :
 
char * chMass = new char[nSymbols];
delete [] chMass;
2
Rififi
2359 / 1052 / 44
Регистрация: 03.05.2009
Сообщений: 2,656
08.09.2009, 09:26 #4
ISergey,
char n[10];
n[0] = '\0'; //

...
-=ЮрА=-,
Вообще очистка производится при помощи free если память выделена malloc(...) и delete [] если память была выделена оператором new []


А теперь - правильный ответ (:
В первом случае будет обнулён только первый элемент, остальные по-прежнему будут содержать мусор. А с помощью free / delete [] происходит освобождение памяти, но никак не очистка.
для "Нужно в программе при определенных обстоятельствах очистить массив." необходимо использовать функцию memset:
memset(n, 0, sizeof(n) / sizeof(n[0]));
1
zim22
depict1
276 / 141 / 2
Регистрация: 11.07.2009
Сообщений: 606
08.09.2009, 09:27 #5
memset
***
Rififi, опередил
***
альтернативная очистка:
C++
1
2
3
for (int i = 0; i != 10; i++) {
  n[i] = 0;
}
1
easybudda
Модератор
Эксперт CЭксперт С++
9681 / 5631 / 954
Регистрация: 25.07.2009
Сообщений: 10,808
08.09.2009, 12:05 #6
*Ещё есть удобная функция bzero(void*, size_t), но не везде реализована...
1
IamSCORPION
SysOp
39 / 38 / 1
Регистрация: 13.04.2009
Сообщений: 274
08.09.2009, 18:18  [ТС] #7
СПАСИБО всем кто откликнулся)))
Rififi
memset(n, 0, sizeof(n) / sizeof(n[0])); помогло)))Наконец игра работает без глюков!!!!Еще раз всем спс)
0
08.09.2009, 18:18
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.09.2009, 18:18
Привет! Вот еще темы с ответами:

Динамическое увеличение размера динамического массива - C++
Никак не могу понять как это исправить.. Помогите, пожалуйста, разобраться в чём дело: struct myPoint ...

Динамическое создания массива со случайной длинной - C++
Всем привет! Может кто-нибудь пожалуйста подсказать что не так в этом коде? int** jaggedArray = new int *; for (int i = 0; i < 5;...

Динамическое создание двумерного массива string - C++
Необходимо создать двумерный массив. Каждый элемент массива является массивом из 4 элементов типа string. Делаю следующим образом: ...

Динамическое выделение памяти для массива - C++
Кто может помочь решить задачу. Для заданного двумерного массива из n строк и m столбцов вывести на экран следующее меню операций: ...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru