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

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

Войти
Регистрация
Восстановить пароль
 
ht1515
шарпопочитатель
58 / 25 / 1
Регистрация: 31.01.2010
Сообщений: 954
#1

Создание динамического массива - C++

27.09.2011, 10:33. Просмотров 941. Ответов 3
Метки нет (Все метки)

C++
1
2
3
const int Num=5; 
const int SIZE=4096 * Num;
SHORT Buf[2][SIZE];
как такое заменить, если Num- инициализируется при загрузке программы, читается из файла.

C++
1
2
3
int Num; 
int SIZE=4096 * Num;
SHORT* Buf = new SHORT[2][SIZE];
тут тоже требуется что бы SIZE был константой.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.09.2011, 10:33     Создание динамического массива
Посмотрите здесь:

Создание динамического массива - C++
Добрый вечер! Подскажите пожалуйста, что необходимо сделать, чтобы заменить статический массив float array; на динамический, длинна...

Создание динамического массива - C++
Ребята подскажите пожалуйста не давно начал изучать С++ ,решил добавить еще один язык для себя помимо Delphi, и вот вопрос как объявить...

Создание динамического массива - C++
Здравствуйте,ребят кто может подсказать как пределать код? что б массивы создавались динамически, ну там писалось введите кол элемнтов...

Создание динамического массива - C++
объясните пожалуйста вот эту часть // sozdanie dinamicheskogo massiva m*n a=(int**)malloc(m*sizeof(int *)); for(i=0;i<m;i++) { ...

Создание динамического массива - C++
Добрый день! Хочу выделить память под массив, только после того как буду знать его длину. Длину вычисляю в функции. Память под массив...

Создание динамического массива - C++
Объявите указатель на массив типа double и предложите пользователю выбрать его размер. Далее напишите четыре функции: первая должна...

Создание динамического массива - C++
Как объявить вот так вот : int blocks = { {0,0,0,0,0,0}, {0,0,0,0,0,0}, {0,0,0,0,0,0}}; Мне пишет ошибку : массив не может...

Создание динамического массива - C++
Как создать динамически массив размера n если n вводиться с клавиатуры. А еще и двумерный cin>>n int a=new int; не работает

Создание динамического массива - C++
Хотел написать программу, чтобы пользователь мог задать количество элементов в одномерном массиве, но компилятор пишет что количество...

Создание динамического массива объектов - C++
Выполняю лабораторную работу в Visual Studio 2012. Вероятно, учебник, как и лабы, устарел. Идёт пункт в лабе: В файле group.h...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
-=ЮрА=-
Заблокирован
Автор FAQ
27.09.2011, 10:40     Создание динамического массива #2
ht1515, смотри код
C++
1
2
3
4
5
6
7
8
int iRows, iCols;//Понятное дело до выделения памяти нужен их инит
SHORT ** Buf = new SHORT * [iRows];//Память под массив указателей размером iRows
for(int i = 0,j; i < Rows;i++)
{
      Buf[i] = new SHORT[iCols];//Каждому указателю память под вектор размером iCols
      for(j = 0; j < Cols; j++)
              Buf[i][j] = i + j;//От балды инициализирую чтобы показать где инит можно вставить
}
ht1515
шарпопочитатель
58 / 25 / 1
Регистрация: 31.01.2010
Сообщений: 954
27.09.2011, 11:14  [ТС]     Создание динамического массива #3
-=ЮрА=-, а Rows и Cols это чего? )

Добавлено через 6 минут
C++
1
2
3
const int Num=5; 
const int SIZE=4096 * Num;
SHORT Buf[2][SIZE];
то есть:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
int iRows, iCols;
SHORT ** Buf = new SHORT * [iRows];
 
void InitArr(){
for(int i = 0,j; i < 2;i++)
{
      Buf[i] = new SHORT[iCols];
      for(j = 0; j < iCols; j++) Buf[i][j] = 0;
}
}
 
void main(){
InitArr();
if (!ReadFile(ModuleHandle, Buf[0], sizeof(Buf[0]), NULL,
/*__inout_opt  LPOVERLAPPED lpOverlapped*/) && (GetLastError() != ERROR_IO_PENDING)) return;        
}
а вот такая функция windows

C++
1
2
3
4
5
6
7
BOOL WINAPI ReadFile(
  __in         HANDLE hFile,
  __out        LPVOID lpBuffer,
  __in         DWORD nNumberOfBytesToRead,
  __out_opt    LPDWORD lpNumberOfBytesRead,
  __inout_opt  LPOVERLAPPED lpOverlapped
);
она же по логие одинаково скушать должна и статический и динамический массив же?

Добавлено через 1 минуту
статический она норм съедает. вот такой динамический чем-то отличается с точки зрения с++ чем-то?

Добавлено через 18 минут
и ещё такой вопрос:
C++
1
extern SHORT ** Buf = new SHORT * [2];
имеет место быть? Так пишут?

И ещё удалять массив из памяти так:
C++
1
2
3
4
for (int i=0; i!=SIZE; i++)
delete[] Buf[i];
 
delete Buf;
?
-=ЮрА=-
Заблокирован
Автор FAQ
27.09.2011, 11:45     Создание динамического массива #4
Цитата Сообщение от ht1515 Посмотреть сообщение
а Rows и Cols это чего?
- необходимое число строк и столбцов, какое требуется такое и вбивай, если массив должен брать инит из файла, тогда столбцы нужно считать по числу цифр в строке ну а iRows - число строк в файле
Yandex
Объявления
27.09.2011, 11:45     Создание динамического массива
Ответ Создать тему
Опции темы

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