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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.92
realqwerty
0 / 0 / 0
Регистрация: 08.01.2009
Сообщений: 3
#1

динамическое созданный массив и работа sizeof - C++

23.01.2009, 19:38. Просмотров 1519. Ответов 2
Метки нет (Все метки)

создаю массив
потом пытаюсь определить размер массива

C++
1
2
unsigned int *filtr = new unsigned int [kol_vo];
sizeof filtr;
возвращает значение 4, т.е. размер указателя.

пытаюсь заполнить массив нулями:
C++
1
memcpy (filtr, 0, sizeof filtr);
обнуляет только первый элемент, как быть, что не правильно?
применима ли операция sizeof к динамически созданному массиву?
зы: (конечно понятно что размер вроде известен заранее, но...)

можно ли инициализировать вновь созданный массив ( хотябы нулями )
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.01.2009, 19:38     динамическое созданный массив и работа sizeof
Посмотрите здесь:

Указатели, динамическое выделение памяти, работа с файлом C++
C++ Скопировать элементы большие числа а в другой динамически созданный массив
Шаблонная функция возвращающая созданный динамический массив C++
sizeof( char * ) & sizeof(char) C++
C++ Статический массив - динамическое выделение памяти!?
C++ Массивы. Отсортировать 100 самых больших чисел в порядке убывания и добавить отсортированные числа в созданный 3 массив
C++ Нужно ли удалять указатель на символьный массив созданный в куче(динамически распределяемой памяти)
C++ Передать динамически созданный массив в sprintf
C++ Динамическое выделение памяти\конструтор копирования\'работа программы прекращена'
C++ Корректно ли удаляется динамически созданный массив?
Работа оператора Sizeof C++
Sizeof и Динамический символьный массив! C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ISergey
Maniac
Эксперт С++
1347 / 880 / 52
Регистрация: 02.01.2009
Сообщений: 2,645
Записей в блоге: 1
23.01.2009, 20:52     динамическое созданный массив и работа sizeof #2
вот пример
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
using namespace std;
 
template<typename T>
inline int arrlen(T *arr)
{
    return static_cast<int>(_msize(arr)/sizeof(T));
}
int main()
{ 
    int *arr = new int[20];
    int len = arrlen(arr);
    cout<<len<<endl;
    memset(arr,0,sizeof(int)*len);//!sizeof(int)*len
    for(int i = 0; i < len; i++)
        cout<<arr[i]<<" ";
    cout<<endl;
    delete[] arr;
    return 0;
}
Lord_Voodoo
Супер-модератор
8577 / 2177 / 61
Регистрация: 07.03.2007
Сообщений: 10,863
Завершенные тесты: 1
23.01.2009, 21:09     динамическое созданный массив и работа sizeof #3
Для выделения памяти и инициализации блока 0-ями используй callc:
C++
1
int * mass = (int*) calloc(kol_vo, sizeof(int));
а в вашем случае надо передавать так:
C++
1
memset (filtr, 0, sizeof(int) * kol_vo);
а memcpy для такой операции не используется... у меня билдер даже выпадает от такого использования...
Yandex
Объявления
23.01.2009, 21:09     динамическое созданный массив и работа sizeof
Ответ Создать тему
Опции темы

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