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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Затирается переменная в DevCPP http://www.cyberforum.ru/cpp-beginners/thread698852.html
Проблема возникла в этой теме. http://www.cyberforum.ru/cpp-beginners/thread697559-page2.html Программу я написал в MSVS2008 и она корректно работала, но стали поступать жалобы, я проверил и...
C++ Запись string в файл есть строка, я её должен записать в текстовый файл так,чтобы она разбилась на несколько строк , при этом длина каждой не превышала 10 символов, а слова которые не влезли переносились: ... http://www.cyberforum.ru/cpp-beginners/thread698849.html
Определите что за сортировка C++
Это сортировка вставками или выбором #include <iostream> #include <time.h> #include <conio.h> using namespace std; int main (){ int temp; const int arraysize=10; int...
C++ Одномерные массивы на csharp
Помогите плз!! Сотавить массив из 20 случ чисел.Отсортировать отриц.четные элементы по возрастаниюю.Вывести на экран нач. массив и отсортированный.
C++ Одномерные массивы: вычисление сумм элементов http://www.cyberforum.ru/cpp-beginners/thread698833.html
Еще раз здравствуйте, дорогие форумчане. Мне еще раз нужна ваша помощь по задаче. Если сможете, то помогите, пожалуйста. Собственно само задание: Даны целые числа a1, ..., an, среди которых могут...
C++ В С++ нужно вывести числа четные до 10, нечетные до 11, в случайном порядке В С++ нужна программа для вывода чисел в случайном порядке четные до 10(2, 4, 6, 8, 10), нечетные до 11(1, 3, 5, 7, 9, 11) PFC_CSKA, будьте внимательнее с выбором раздела. подробнее

Показать сообщение отдельно
damnare
0 / 0 / 0
Регистрация: 07.06.2012
Сообщений: 18

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

15.11.2012, 20:27. Просмотров 639. Ответов 6
Метки (Все метки)

Доброго времени суток.
Пытаюсь разобраться с динамическим выделением память.

Суть:
Есть структура с двумя полями:
1. Указатель на Имя таблицы
2. Указатель на двумерный массив
Пользователь вводит необходимое количество структур[t], размерность матрицы [n][m], длину поля для имени таблицы[s].

Подскажите пожалуйста, правильно ли я выделяю память?

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#include <stdio.h>
#include <conio.h>
#include <string.h>
 
#define NULL 0
 
typedef struct Table
{
    char *TblName;
    int **Matrix;
} table;
 
void main()
{
    int t,n,m,s;
 
    printf("Enter number of structures (T): ");
    scanf("%d",&t);                 //Вводим необходимое количество структур
    printf("Enter the length of the string for the name of the table (S): ");
    scanf("%d",&s);                 //Вводим размерность поля для названия таблицы
    printf("Enter the row count for the matrix (N): ");
    scanf("%d",&n);                 //Вводим количество столбцов
    printf("Enter the number of columns in the matrix (M): ");
    scanf("%d",&m);                 //Вводим количество строк
    printf("----------------------------------------------------------------\n");
 
    table *mas = NULL;              //Объявил указатель для массива структур table
    mas = new table[t];             //Выделил память для массива структур table[t] и записал адрес начала блока памяти в указатель mas
 
    char *TblName = NULL;           //Объявил указатель для массива table.TblName (имя таблицы - массив символов)
    TblName = new char[s*t];        //Выделил память для массива table[t].TblName[s*t] и записал адрес начала блока памяти в указатель TblName
 
    int **Matrix = NULL;            //Объявил указатель для двумерного массива table.Matrix
    Matrix = new int * [n];         //Выделил память для массива указателей 
    for(int i=0;i<n;i++)        
        Matrix[n] = new int [m];    //Выделил память для массива значений
 
 
    for(int i=0;i<n;i++)
        delete Matrix [i];          //Освободил память выделенную для массива значений
    delete [] Matrix;               //Освободил память выделенную для массива указателей
 
    delete [] TblName;              //Освободил память выделенную для массива имени таблицы
 
    delete [] mas;                  //Освободил память выделенную для массива структур
 
    _getch();
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru