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

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

Войти
Регистрация
Восстановить пароль
 
Gepar
1175 / 531 / 20
Регистрация: 01.07.2009
Сообщений: 3,517
#1

Обнулить кусок памяти (выделенной под указатели) по быстрому - C++

23.03.2013, 12:46. Просмотров 642. Ответов 3
Метки нет (Все метки)

Есть хеш-таблица и есть кусок памяти под неё, нужно занулить изначально весь кусок памяти, но как можно быстрее, те хорошо бы использовать что-то из стандартных функций с asm вставками, как вот memcpy например.
Другое дело что у меня не получааеться это сделать:
C++
1
2
3
4
5
        Element** hashTable = new Element*[8195];
        for(int i=0;i<8195/4;i++)
            hashTable[i] = 0;
        memcpy(&hashTable+8195/4,&hashTable,8195/4);//ошибка
        memcpy(&hashTable+8195/2,&hashTable,8195/2);
Как видите не хочет она занулять всё это дело таким образом, ей подавай данные, а не нули
Из доступных для подключения библиотек только эти:
C++
1
2
3
4
5
6
#include <iostream>
#include <iomanip>
#include <string>
#include <cstring>
#include <cstdlib>
#include <cstdio>
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.03.2013, 12:46     Обнулить кусок памяти (выделенной под указатели) по быстрому
Посмотрите здесь:

Как обнулить указатель на одну ячейку в динамически-выделенной памяти? - C++
Выделю память под 10 элементов: int* p = new int; Наполняю значениями: for(int i = 0; i&lt;10; i++) { p = i; } Можно...

Освобождение памяти, выделенной под массив - C++
Выделяю память под массив: int (*array_1) = new int; как освободить то, что выделил? И еще вопрос: как указателю...

Функция не видит выделенной памяти под глобальные переменные - C++
При решении задачи с алгоритмом поиска в глубину возникла проблема: описание переменных происходит над п/п алгоритма, выделение памяти под...

Ошибка при высвобождении ранее выделенной памяти под динам. массив - C++
Собственно, в чем суть: //инициализирую bool* delimeters = new bool; ... //Удаляю delete delimeters; Точки останова...

Косвенное обращение к методам. Освобождение памяти,выделенной под двумерный динамический массив - C++
Вопрос 1. В задании необходимо проиллюстрировать косвенный способ обращения к методам. Искал в интернете. Нашел : Array *s, obj(n,...

Удаление выделенной памяти - C++
#include &lt;iostream&gt; using namespace std; int main() { int localVariable = 5; int * pLocal=...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
NoMasters
Псевдослучайный
1747 / 1090 / 71
Регистрация: 13.09.2011
Сообщений: 3,120
23.03.2013, 13:37     Обнулить кусок памяти (выделенной под указатели) по быстрому #2
memset. И да, вы что-то очень странное делаете в приведённом куске кода.
Toshkarik
1140 / 857 / 51
Регистрация: 03.08.2011
Сообщений: 2,384
Завершенные тесты: 1
23.03.2013, 14:04     Обнулить кусок памяти (выделенной под указатели) по быстрому #3
Это зануление при инициализации.
C++
1
Element** hashTable = new Element*[8195]();
Это если понадобится после инициализации:
C++
1
memset( hashTable, 0, sizeof( hashTable ) * 8195 );
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.03.2013, 19:53     Обнулить кусок памяти (выделенной под указатели) по быстрому
Еще ссылки по теме:

Удаление выделенной памяти - C++
есть такой класс: выделяю память под element *ptemp = new element; и iris *temp = new iris; нужно ли отдельно удалять new iris?? ...

Как преобразовать кусок памяти в stringstream? - C++
Есть загруженный кусок памяти, указатель на начало данных, известен его размер. Как мне его превратить в какой нибудь stream мб...

Освобождение памяти, выделенной через new - C++
Я прочитал, что память динамически для строки, можно выделить к примеру узнать длину строки strlen(tex) и нужно добавить единицу для...

Выход за границу выделенной памяти - C++
Какие операции (кроме записи) за пределами выделенной памяти приводят к UB?

Массив: Освобождение выделенной памяти - C++
Сказали переделать код, нужно что бы память освобождалась не в отдельной функции а как то по другому так и не понял как. #include...

Мусор в памяти, выделенной динамически - C++
Есть код, выполняет разархивацию файла, закодированного LZ77. Вот его основная часть: цикл в котором проверяется каждый бит в маске и...


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

Или воспользуйтесь поиском по форуму:
Gepar
1175 / 531 / 20
Регистрация: 01.07.2009
Сообщений: 3,517
25.03.2013, 19:53  [ТС]     Обнулить кусок памяти (выделенной под указатели) по быстрому #4
Toshkarik, а, спасибо, забыл о memset.
NoMasters, угу, странное, пытался скопировать нули копированием куска памяти, но не тут то было
Yandex
Объявления
25.03.2013, 19:53     Обнулить кусок памяти (выделенной под указатели) по быстрому
Ответ Создать тему
Опции темы

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