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

Динамическое выделение памяти - C++

Восстановить пароль Регистрация
 
Юлек
 Аватар для Юлек
4 / 3 / 0
Регистрация: 26.10.2009
Сообщений: 43
29.08.2010, 22:10     Динамическое выделение памяти #1
Уважаемые программисты!!!! Подскажите как выделить память для двумерного массива. Заранее спасибо!!!
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
CyBOSSeR
Эксперт C++
 Аватар для CyBOSSeR
2293 / 1663 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
29.08.2010, 22:14     Динамическое выделение памяти #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
// Выделение
int** matrix = new int*[n];
for (int i = 0; i < n; ++i)
  matrix[i] = new int[m];
 
// ...
 
// Удаление
for (int i = 0; i < n; ++i)
  delete [] matrix[i];
 
delete [] matrix;
n - количество строк.
m - количество столбцов.
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
29.08.2010, 22:53     Динамическое выделение памяти #3
Или на Си. С очисткой не уверен как

C
1
2
3
4
int i;
int**matr=(int**)malloc(sizeof(int)*n);
for(i=0;i<n;++i)
    matr[i]=(int*)malloc(sizeof(int)*m);
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
29.08.2010, 23:02     Динамическое выделение памяти #4
Очистка

C
1
2
3
for (i = 0; i < n; i++)
    free(matr[i]);
free(matr);
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
29.08.2010, 23:03     Динамическое выделение памяти #5
silent_1991, Собсна так и думал. Только какие-то непонятки возникли, когда дебагом пробегался. Не увидел очистки
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
29.08.2010, 23:04     Динамическое выделение памяти #6
Ну и выделять память корректнее так

C
1
2
3
4
int i;
int **matr=(int **)malloc(sizeof(int *) * n);
for (i = 0; i < n; i++)
    matr[i] = (int *)malloc(sizeof(int) * m);
Yandex
Объявления
29.08.2010, 23:04     Динамическое выделение памяти
Ответ Создать тему
Опции темы

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