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

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

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

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

23.03.2013, 12:46. Просмотров 699. Ответов 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>
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.03.2013, 12:46
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Обнулить кусок памяти (выделенной под указатели) по быстрому (C++):

Как обнулить указатель на одну ячейку в динамически-выделенной памяти? - 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=...

3
NoMasters
Псевдослучайный
1762 / 1105 / 73
Регистрация: 13.09.2011
Сообщений: 3,141
23.03.2013, 13:37 #2
memset. И да, вы что-то очень странное делаете в приведённом куске кода.
1
Toshkarik
1141 / 858 / 51
Регистрация: 03.08.2011
Сообщений: 2,386
Завершенные тесты: 1
23.03.2013, 14:04 #3
Это зануление при инициализации.
C++
1
Element** hashTable = new Element*[8195]();
Это если понадобится после инициализации:
C++
1
memset( hashTable, 0, sizeof( hashTable ) * 8195 );
1
Gepar
1177 / 533 / 20
Регистрация: 01.07.2009
Сообщений: 3,517
25.03.2013, 19:53  [ТС] #4
Toshkarik, а, спасибо, забыл о memset.
NoMasters, угу, странное, пытался скопировать нули копированием куска памяти, но не тут то было
0
25.03.2013, 19:53
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++
Сказали переделать код, нужно что бы память освобождалась не в отдельной функции а как то по другому так и не понял как. #include...


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

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

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