Форум программистов, компьютерный форум, киберфорум
Наши страницы
C для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.71/35: Рейтинг темы: голосов - 35, средняя оценка - 4.71
olegsk
0 / 0 / 0
Регистрация: 27.01.2012
Сообщений: 4
1

Динамическое выделение памяти под двумерный массив

11.06.2012, 16:26. Просмотров 6560. Ответов 2
Метки нет (Все метки)

Доброго времени суток, есть программа которая создаёт двумерный массив, вопрос такой как можно поправить программу чтоб она выделяла память динамически про malloc, calloc слышал но не пойму как их применить на практике, ибо длля меня это тёмный лес)). Может кто нибудь подсказать?

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
#include <stdio.h>
#include <stdlib.h>
#include <fcntl.h>
#include <sys\stat.h>
#include <io.h>
 
int main(int argc, char *argv[])
{
char a[5][5]; //выделяю память для массива размером 25 байт
int i,j,n, handle; //объявляю переменные типа integer
for(i=0;i<5;i++)
 {
    for(j=0;j<5;j++)
    {
          
          n=5;  //создаю временную переменную
          a[i][j]=0; //присваиваю всем элементам массива 0 значение
          if((i==j)||(j==n-i-1)) a[i][j]=1; 
          printf("%3d", a[i][j]); //вывожу на экран сформированную матрицу  
          }                       //размером 5х5
          printf("\n");
          }
          _fmode=O_BINARY;
          handle=creat("matrix.txt", S_IREAD|S_IWRITE); //создаю двоичный файл
          write(handle, a, sizeof(a)); //записываю матрицу в файл
          close(handle); //закрываю файл
          getch();  //ждём нажатия любой клавиши
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.06.2012, 16:26
Ответы с готовыми решениями:

Динамическое выделение памяти под массив
Здравствуйте, помогите пожалуйста сделать в процедуре input динамическое выделение памяти под...

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

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

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

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

2
grizlik78
Эксперт С++
2045 / 1521 / 211
Регистрация: 29.05.2011
Сообщений: 3,154
11.06.2012, 17:24 2
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
#include <stdio.h>
#include <stdlib.h>
#include <fcntl.h>
#include <sys\stat.h>
#include <io.h>
 
int main(int argc, char *argv[])
{
    int N = 5;
    int M = 5;
    int i,j,n, handle; //объявляю переменные типа integer
    char *a_storage;
    char **a;
 
    a_storage = (char*)malloc(N*M); //выделяем память для массива размером N*M байт
    a = (char**)malloc(N*sizeof(char*)); //массив указателей на строки матрицы
    for (i = 0; i < N; ++i)
        a[i] = a_storage + i*M; //инициализируем строки
 
    for(i=0;i<N;i++)
    {
        for(j=0;j<M;j++)
        {
 
            n=5;  //создаю временную переменную
            a[i][j]=0; //присваиваю всем элементам массива 0 значение
            if((i==j)||(j==n-i-1)) a[i][j]=1; 
            printf("%3d", a[i][j]); //вывожу на экран сформированную матрицу  
        }                       //размером NхM
        printf("\n");
    }
    _fmode=O_BINARY;
    handle=creat("matrix.txt", S_IREAD|S_IWRITE); //создаю двоичный файл
    write(handle, a, N*M); //записываю матрицу в файл
    close(handle); //закрываю файл
 
    free(a); //освобождаем память
    free(a_storage); //освобождаем память
 
    getch();  //ждём нажатия любой клавиши
}
1
olegsk
0 / 0 / 0
Регистрация: 27.01.2012
Сообщений: 4
11.06.2012, 17:47  [ТС] 3
grizlik78, спасибо буду разбираться как оно работает))) чтоб больше таких глупых вопросов не задавать))))
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.06.2012, 17:47

Динамическое выделение памяти под одномерный массив
В общем, вопрос такой. Пусть нам нужно задать массив, используя динамическое выделение памяти....

Выделение памяти под двумерный массив
Здравствуйте! скажите пожалуйста почему нельзя выделить под двумерный массив память через функцию....

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


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

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

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